Hi,
here is the condensed view of my first impressions of the new profiler
Profile.exe
- ll Line Level timing does not work (only method level timings displayed). When it does work after some runs it seems that
the source code view has wrong data and I am looking not event at the right method in the source view.
- Ants profiler extension should be added .app6results to enable it to open it in the UI /data:c:\profiled will generate a file which cannot
be openened in the UI
- Some really cool feature would be to integrate it with the Image File Execution Options for a specific process with command line argument
filtering.
E.g. I have a set of processes (currently about 25 in my case) from which I want to profile only one or two. They can be differentiated
by their command line. Since they start each other I need the Image File Excution Options to hook into the process creation.
profile /ife myProcess.exe /CmdLineContains "Backend"
An alternative would be to to simply enable the Image File Execution options via the command line. But beware
that there are different registry hives on 32 and 64 bit so one would need to specify if one wants to profile a 64bit or 32 bit application.
http://msdn.microsoft.com/en-us/library/a329t4ed(VS.71).aspx
// Enable profiling for all new processes now
profile /ll /sp /data:c:\profiled.app6results /t 30 /ife MyProcess.exe
// Disable profiling of further processes
profile /ife MyProcess.exe /clear
The tricky thing is that the output file name could now be locked because more than one process will be started. You could solve
this by appending the pid for each profiled process. Bonus points for you if the different profiler results could be merged into
one view.
Ants Profiler UI
- The Thread stack should have the owning process as parent (with pid) to be able to differentiate which process it was
- The performance counters should have the pid added to their names to be able to differentiate which process it was.
- The method grid should have a column process to filter for a specific process
- I do not see in the UI any way see the timings of my child processes
- The UI has no close Profiling Session Menu. This will result in IOExceptions because the file cannot be written to when I start the
next profiling session. The -f force option does not help here.
- When the the source file cannot be found I would like to simply choose a different drive letter instead of typing the whole path
manually. Normally the path is the same but the drive on where the sources were built can be different.
All in all very promising but the multi process support is still very whacky. To make it really usable in a multi process start scenario there is still some work left.
Yours,
Alois Kraus
here is the condensed view of my first impressions of the new profiler
Profile.exe
- ll Line Level timing does not work (only method level timings displayed). When it does work after some runs it seems that
the source code view has wrong data and I am looking not event at the right method in the source view.
- Ants profiler extension should be added .app6results to enable it to open it in the UI /data:c:\profiled will generate a file which cannot
be openened in the UI
- Some really cool feature would be to integrate it with the Image File Execution Options for a specific process with command line argument
filtering.
E.g. I have a set of processes (currently about 25 in my case) from which I want to profile only one or two. They can be differentiated
by their command line. Since they start each other I need the Image File Excution Options to hook into the process creation.
profile /ife myProcess.exe /CmdLineContains "Backend"
An alternative would be to to simply enable the Image File Execution options via the command line. But beware
that there are different registry hives on 32 and 64 bit so one would need to specify if one wants to profile a 64bit or 32 bit application.
http://msdn.microsoft.com/en-us/library/a329t4ed(VS.71).aspx
// Enable profiling for all new processes now
profile /ll /sp /data:c:\profiled.app6results /t 30 /ife MyProcess.exe
// Disable profiling of further processes
profile /ife MyProcess.exe /clear
The tricky thing is that the output file name could now be locked because more than one process will be started. You could solve
this by appending the pid for each profiled process. Bonus points for you if the different profiler results could be merged into
one view.
Ants Profiler UI
- The Thread stack should have the owning process as parent (with pid) to be able to differentiate which process it was
- The performance counters should have the pid added to their names to be able to differentiate which process it was.
- The method grid should have a column process to filter for a specific process
- I do not see in the UI any way see the timings of my child processes
- The UI has no close Profiling Session Menu. This will result in IOExceptions because the file cannot be written to when I start the
next profiling session. The -f force option does not help here.
- When the the source file cannot be found I would like to simply choose a different drive letter instead of typing the whole path
manually. Normally the path is the same but the drive on where the sources were built can be different.
All in all very promising but the multi process support is still very whacky. To make it really usable in a multi process start scenario there is still some work left.
Yours,
Alois Kraus