Your profiling tools can manufacture performance issues where there were none

Raymond Chen

When analyzing the performance of a program, you must be mindful that your performance analysis tools can themselves affect the operation of the system you are analyzing. This is especially true if the performance analysis tool is running on the same computer as the program being studied.

People often complain that Explorer takes a page fault every two seconds even when doing nothing. They determine this by opening Task Manager and enabling the Page Faults column, and observing that the number of Page Faults increases by one every two seconds.

This got reported so often that I was asked to sit down and figure out what’s going on.

Notice, though, that if you change Task Manager’s Update Speed to High, then Explorer’s page fault rate goes up to four per second. If you drop it to Low, then it drops to one every four seconds.

If you haven’t figured it out by now, the reason is that Task Manager itself is causing those page faults. Mind you, they are soft faults and therefore do not entail any disk access. Every two seconds (at the Normal update rate), Task Manager updates the CPU meter in the taskbar, and it is this act of updating the CPU meter that is the cause of the page faults.

No Task Manager, no animating taskbar notification icon, and therefore no page faults from Explorer when idle.

(A similar effect was discovered by Mark Russinovich when he found that Process Explorer’s polling calls to the EnumServiceStatusEx function was triggering repeated registry access.)

0 comments

Discussion is closed.

Feedback usabilla icon