Tracy Profiler Integration

Stefan Koch uplink.coder at googlemail.com
Mon Aug 10 21:54:33 UTC 2020


On Monday, 3 August 2020 at 20:36:51 UTC, Stefan Koch wrote:
> Hello Folks,
>
> I am currently integrating the tracy profiler 
> (https://github.com/wolfpld/tracy)
> with dmd.
>
> Such that instead of the profiler in druntime, tracy can be 
> used for instrumented profiling.
>
>
> The current progress is here: 
> https://github.com/dlang/dmd/compare/master...UplinkCoder:tracy?expand=1
>  there are still some teething problems, but I am confident 
> that it will be useful soon.
>
> Cheers,
>
> Stefan

There are some news of this:

Here is a screenshot of the Tracy profiler integration being 
used, for a "trivial" hello world example, (in reliity the 
druntime and phobos templates gave me a bit of trouble  ...)

https://ibb.co/0XKyJd3

The code on the left hand side can be compiled with the -tracy 
switch.
and run (provided you copy TracyClientNoExit.o) into 
/tmp/TracyClientNoExit.o
(which you have to compile yourself using 
https://github.com/UplinkCoder/tracy/tree/fixit
and running the build.sh from there).

Cheers everyone!
Note, currently I am using the c-api for dynamic langauges, which 
creates source locations every time, that makes the profiling a 
little more expensive than it would usually be.
Hence even a no-op function will take about a microsecond ... But 
this can be improved later.

Using tracy I found out that the unsignedTempString function in 
Phobos is somewhat slow ...
No wonder it divides in a loop.
I'll replace it soon.


More information about the Digitalmars-d mailing list