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