5 ms·
Optick: C++ Profiler for Games
- simfoo 5y agoVery interesting, but seems to be focussed on games / frame-based simulations. Does anyone know a similar generic graphical profiler for Linux that also provides system context (other threads, syscalls, preemptions)? I'm only aware of VTune.
- interroboink 5y agoCheck out Tracy[1]. If you run it as root, it provides a lot of "extra" information, such as when your threads get moved between CPUs. Actually, I saw this post and thought "why should I bother when I already have Tracy?" If anyone has an answer to that, I'm curious to know (: Tracy is still a frame-based profiler, though. If you want general system-wide profiling more focused on throughput rather than latency, then I've had a good experience generating flame graphs[2] using plain Linux perf. [1] https://github.com/wolfpld/tracy https://github.com/wolfpld/tracy [2] https://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html https://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
- jcelerier 5y agoHotspot (https://www.kdab.com/hotspot-video/ https://www.kdab.com/hotspot-video/) :)
- ensiferum 5y agoNice, but it only supports Vulkan? I did something similar in a few macros myself by creating nested scopes which record the current time on enter and exit. However I'm leveraging the UI built into chromium for the visualization. https://github.com/ensisoft/gamestudio/blob/master/base/trace.h https://github.com/ensisoft/gamestudio/blob/master/base/trac...
- erwincoumans 5y agoYes, Chrome about://tracing is great to visualize your custom timing data. Happy used for the last 5 years in Bullet and recent physics engines, including events across tracing multiple threads: https://github.com/google-research/tiny-differentiable-simulator/blob/master/src/visualizer/opengl/utils/tiny_chrome_trace_util.cpp https://github.com/google-research/tiny-differentiable-simul...
- bogwog 5y agoDoes this only work on Windows? Theres a table that mentions platform support, but it’s not clear if that’s for the visualizer or the capture library.