d3cod3 / Mosaic

Mosaic, an openFrameworks based Visual Patching Creative-Coding Platform
https://mosaic.d3cod3.org
Other
430 stars 23 forks source link

Tracy Profiler Integration #33

Open Daandelange opened 4 years ago

Daandelange commented 4 years ago

Opening a new issue for the Tracy integration, continuing the off-topic discussion from #22 .

So the idea is to integrate Tracy to facilitate debugging, with a focus on :

Here's a screenshot from the 0.7.2 manual showing platform-specific features :
image


Daandelange commented 4 years ago

I got some time for this, it's quite easy to integrate but everything you collect is manual. I'll definitely implement Tracy to facilitate #22. It will help optimize code, detect order-of-execution glitches, locks/mutexes that slow down threads, spot useless memory allocations, etc. And it might give an interactive insight of the inner mechanics of Mosaic for newcomers.

Here's 2 first screenshots to give an insight of what to expect. Here, MosaicEngineTester ran on osx while the Tracy Profiler ran on Linux. Tracy_profiler_mosaic_startup Tracy_profiles_Mosaic_frameZoom I'll add some details soon.

d3cod3 commented 4 years ago

Great to hear it's working! Can't wait to have it running with Mosaic

Daandelange commented 2 years ago

Side note: Tracy 0.8 brings a lot of multithreading-related updates, looks promising.

Edit: Current state: Basic Tracy support has been added in c72c92013cd9ab66e63bf9f98ec9354b395d19af and 7de075382070e1415d2d72f35074330604385932 . If I'm correct, all steps above still need to be checked, and some more Tracy features could be enabled. There's also a Tracy Profiler Wiki with some initial instructions.