xperf

How to perform Xperf callstack capture on 64b OS?

I have installed Xperf performance analyzer from Windows SDK and captured a trace as described in the documentation using following command: xperf -on SysProf -stackwalk profile Still, the stack trace does not contain any callstack data. My platform is Vista 64b. Are there any special settings or tricks needed to capture callstacks o...

Getting the symbols with xperf

I read through the docs and used the commands outlined however for some reason I dont seem to be getting any symbols, just a series of "unknowns" in the function column of the summary table for everything except the topmost set of the app I was trying to debug.... I set the enviromental variable to the microsoft server and the direcories...

xperf can't load my DLL's symbols

I'm trying to use xperf to profile my DLL, but it refuses to use my DLL's PDB file. Running xperf on the .etl with -symbols, I get: DBGHELP: mydll- private symbols & lines C:\mydll\debugu\mydll.pdb - unmatched Which leads me to believe it thinks my PDB doesn't match the DLL the application is using. This is wrong; it does mat...

How do I trace a custom allocator using xperf's heap profiling tools?

xperf (part of Windows Performance Analysis Toolkit) is very helpful in tracking memory usage with its heap analysis. However, my app uses a custom allocator -- it grabs chunks via VirtualAlloc directly and manages its own heap. I'd like to generate HeapAlloc/HeapFree/etc. events myself from my own allocation functions, so that I can u...

XPerfView slow to load symbols

I am attempting to perform a stackwalk with Xperf, using a batch file similar to the one listed at http://stackoverflow.com/questions/597211/getting-the-symbols-with-xperf. I launch XperfView, confirm the symbol path is correct, and then load the symbols. However, when I attempt to open a summary table on a selected portion (5 secon...

Diagnosing Cause of 100% CPU Usage by "System" Process

I have a Windows server application, implemented in C++ using the Win32 API, that does a lot of serial and TCP/IP communication. As it runs, CPU usage gradually increases, until it reaches 100%. Task Manager indicates that most (>75%) of the CPU usage is by the "System" process. If I kill my server process, then CPU usage returns to n...

Xperfview: What's the difference between CPU sampling and CPU Usage?

This question pertains to xperf and xperfview, utilities that are part of the Windows Performance Toolkit (in turn part of Windows SDK 7.1). Comparing two charts, "CPU sampling by thread" and "CPU Usage by thread", there are several differences I don't understand. I'll use audiodg.exe as an example. In the Threads pulldown, there is ...

XPerfViewer with the new Storport Provider?

Does anyone know of a way to parse out disk latency information from the new Storport provider with XPerfViewer (or any other tool)? I used the following article to capture a trace: http://blogs.msdn.com/b/ntdebugging/archive/2010/04/22/etw-storport.aspx This does give me a series of events in .etl format that XPerfViewer will plot a...