Tharsis.prof 0.1: a frame-based profiler for game development
Kiith-Sa via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sat Sep 6 20:41:44 PDT 2014
On Sunday, 7 September 2014 at 02:41:53 UTC, Andrei Alexandrescu
wrote:
> 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
Actually, it's already on Reddit, but on r/gamedev:
http://www.reddit.com/r/gamedev/comments/2fjgcu/framebased_game_profiling/
The first post contains easily visible links to the other two,
but it's not particularly D-focused (neither is the second). The
third post is D-focused, and it contains links to the previous
two, some code examples as well as a link to the GitHub project
with the introductory example, but these links are inline in the
text, not separate.
More information about the Digitalmars-d-announce
mailing list