Can I use xperf for a managed profile?

I am trying to profile CPU time in an ASP.NET application (running locally) using xperf.

So far, I have followed the standard procedure:

  • Run cmd as administrator
  • xperf -on base
  • Do some things in a web application.
  • xperf -d mylog.etl
  • xperfview mylog.etl
  • Trace → Download Characters
  • Summary table

At this moment, I see call reports for unmanaged code.

What do I need to do to see the same for my .NET assembly? Is it possible?

I have a path to my PDB in _NT_SYMBOL_PATH , and at least I know that MS characters are loading.

I saw this question , but it does not have a solution. According to this answer ,

You need the xperf version from the Windows 8 SDK. This version supports .net. Start tracing with the new Performance Recorder user interface and this tool generates PDBs for ngened.net components so that xperfview and WPA can decode the column.

Can anyone confirm this? I am using the Windows 7 and Windows 7 SDK. I am skeptical about installing another SDK platform.

UPDATE . Yes, the Windows 8 SDK runs on Windows 7, and for this purpose you only need the Performance Toolkit. In fact, you don’t even need to use the new “Windows performance analyzer” because the etl files created by the new “Windows performance recorder” will still work with xperfview , including extended stack traces. See Comments on the accepted answer for further notes.

+4
source share
1 answer

Yes, you need a version for Windows 8. Try it and you will see that everything is working fine. If you want to use xperf instead of WPR (UI), follow these steps:

http://msdn.microsoft.com/en-us/library/ff357718%28v=vs.100%29.aspx

+2
source

Source: https://habr.com/ru/post/1501698/


All Articles