digitalmars.D.announce - Tharsis.prof 0.1: a frame-based profiler for game development
- Kiith-Sa (33/33) Sep 05 2014 Announcing Tharsis.prof, a frame-based profiler in D.
- Jonas Drewsen (3/4) Sep 05 2014 Awesome. Looking forward to check it out!
- Andrei Alexandrescu (6/37) Sep 06 2014 This looks like solid work, congratulations! Could someone please
- Kiith-Sa (10/68) Sep 06 2014 Actually, it's already on Reddit, but on r/gamedev:
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
Sep 05 2014
On Friday, 5 September 2014 at 11:06:56 UTC, Kiith-Sa wrote:Announcing Tharsis.prof, a frame-based profiler in D.Awesome. Looking forward to check it out! /Jonas
Sep 05 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
Sep 06 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: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.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
Sep 06 2014