I blogged about wait chain traversal (WCT) a while ago – we’ve seen that it’s quite a useful tool for analyzing system-wide synchronization issues such as multi-process deadlocks, and might actually be useful for intra-process analysis as well. What I regretted ever since is that there was no Microsoft tool for displaying WCT information, except for some rarely-cooked MSDN samples.
This comes to an end with the Windows 7 Resource Monitor. By the way, if you haven’t been introduced: Reader, Resource Monitor. Resource Monitor, Reader. Great, now that you’ve made the acquaintance, you can take it from here by either launching Resource Monitor directly or clicking the Resource Monitor button on the Performance tab of Task Manager (works in Vista too).
What I wanted to show you today is that you can go to the Overview or CPU tab in Resource Monitor, right-click any process (unresponsive processes will be shown in red to begin with) and choose “Analyze Process”. This opens a cool new dialog which shows you what the threads in the process are waiting for, and who holds the resources they are waiting for.
You even get the option to end one of the problematic processes if you deem fit.
Another nice new thing in Resource Monitor is a visualization of physical memory usage:
Resource Monitor is evolving to become a very useful utility for analyzing system performance and stability at a glance; having this kind of tool packaged with Windows and available on any Windows system will make troubleshooting and debugging work much easier.
If you haven’t tried Resource Monitor yet, it’s time to get better acquainted.