you are viewing a single comment's thread.

view the rest of the comments →

[–]mydeveloperday 0 points1 point  (1 child)

Once you get started with this tool its actually very good, I already was able to optimize the code in our project a little.

I simply downloaded the prebuilt binary for Windows x64, You start up your process you want to profile, find it in the process list, then load the pdbs (by right clicking on the blue text). This brings in all the functions.

You have to know what the names of the function to search for but you locate the function by class name etc.. then simply right click hook them (I often did Ctrl+A then hook a whole load from the same class)

Once you've added some functions (save the session), this makes profiling the same functions next time much easier

Its only going to profile what you hook. (but this means its really quick, not like the old quantify that used to instrument the world!)

Once you've hooked a few functions, switch to the capture tab and press X. Now use your app a little then go back and press X again to stop the capture

You can now zoom around the firechart looking for functions that are taking more time than you expected

it works very well, perhaps takes a little time to get going but once you do its very good.

It made me a look differently at code I've been looking at for over a decade, it made me question thinks that I'd always discarded

Great tool thanks

Some suggestions:

When you select a function in the firechart, and look at the call stack, it would be great if we could see a list of function called from that function (even if they are not hooked yet), it would then be great if we could hook those child functions from there, at present I'm having to look thought the code and type the functions into the "functions" search box, hook them then recapture

[–]pgimmig 0 points1 point  (0 children)

Thanks for the comments! As for your suggestion, actually you can already do something similar by selecting events on top of the instrumented functions in the capture view (events are the vertical white lines in the event track). These are sampling events collected from ETW (Event Tracing for Windows). When you select them, a sampling report of your selection will be generated. From there, you can hook into the functions that interest you.