Tharsis.prof 0.1: a frame-based profiler for game development

Andrei Alexandrescu via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Sep 6 19:42:11 PDT 2014


This looks like solid work, congratulations! Could someone please 
announce this on reddit and hackernews on Monday morning?

We'd need one of the blog posts to be the entry point leading to the 
others and to the code examples. Which one would be it?


Andrei

On 9/5/14, 4:06 AM, Kiith-Sa wrote:
> Announcing Tharsis.prof, a frame-based profiler in D.
>
> A profiler as-a-library that keeps track of overhead of every individual
> frame
> RAII-style API for recording profile data, and range-style API for
> processing the results (with std.algorithm and the like - no graphics
> interface yet).
> No GC allocations (and no heap allocations either - user must provide
> memory).
>
> See example at:
>
> https://github.com/kiith-sa/tharsis.prof
>
>
> Use case: my game has a rare lag that occurs once per minute. Profiler
> is useless because the lag is averaged out. To solve with Tharsis.prof:
>
> * Instrument code (add Zones, say, for rendering batches, physics, etc)
> * Profile till the lag occurs.
> * Get a range of frames (e.g. by filtering zones to get those named
> "frame")
> * Sort the range
> * Get the longest frame
> * Filter a range of all zones to get only those with start/end time
> within the longest frame.
> * Find the offending zone
> * Done
>
>
> Blog posts explaining what this is in detail (should be one post, but it
> ended up being too long):
>
> http://defenestrate.eu/2014/09/05/frame_based_game_profiling.html
> http://defenestrate.eu/2014/09/05/optimizing_memory_usage_of_a_frame_based_profiler.html
>
> http://defenestrate.eu/2014/09/05/frame_based_profiling_with_d_ranges.html
>
> GitHub: https://github.com/kiith-sa/tharsis.prof
> Dub: http://code.dlang.org/packages/tharsis-prof
> API docs (with examples):
> http://defenestrate.eu/docs/tharsis.prof/index.html



More information about the Digitalmars-d-announce mailing list