When an application runs amok in Windows (whether it's an application of your creation or not) Microsoft's free Process Explorer can help sort out exactly what it is that got gummed up.
With it you can find the source of mysterious file locks, uncover hidden memory leaks, and understand the chain of processes associated with any Windows application. These are just a few of the useful features provided by the freely downloadable Process Explorer application.
In July 2006 Microsoft acquired a company named Sysinternals. Sysinternals was a software company known for its high quality utilities, many of which it provided for free. With the acquisition, Microsoft obtained a set of high quality software tools that it continues to provide for free. Microsoft's Windows Sysinternals web site lists dozens of free utilities that many software developers and network administrators swear by. For software developers, the most useful utility is probably Process Explorer.
The standard Windows Task Manager provides a basic view into the top level processes that are currently running on the computer. Microsoft's freely downloadable Process Explorer takes this kind of information to a whole new level. It can even be configured to run in place of the standard Windows Task Manager.
Figure 1: Process Explorer gives you a detailed view into currently running interrelated processes.
Process Explorer's default tree view (pictured above) displays a complete hierarchy of all running processes - not just the top level processes that Windows Task Manager displays. Processes are color coded to help you more easily find what you seek. The color codings are configurable. For example, .NET processes can be one color, Windows services could be another, and newly instantiated processes can be identified with yet another customizable hue. These colors can be adjusted via the Options dropdown menu.
There are dozens of grid columns that can be added, removed, and rearranged as desired. These data points can be useful for identifying performance issues, memory leaks, and inefficient use of handles & threads. They can also identify a plethora of .NET specific details about garbage collection, assemblies, classes, and JIT compilation issues. You can even save useful column configurations to reuse the next time you need to do similar work. For example, you might find one set of columns useful for debugging while a different set of columns might be more optimal for performance tuning. The View dropdown menu contains the bulk of these options.
Figure 2: Process Explorer’s lower window pane can optionally provide detailed DLL and handle information about the selected process.
The optional lower window pane (pictured above) can list all of the DLLs that are associated with the selected process, including complete path & version information for each DLL. This can be handy for identifying which process has locked a DLL that you may be trying to update. Alternately, the lower pane can be configured to instead display a list of open handles associated with the selected process. This can be useful for identifying which process has locked a file that you may be trying to update. The lower pane can be configured via the View dropdown menu. Process Explorer's toolbar and Find dropdown menu provide some useful search features to quickly locate specific processes, DLLs or handles that may be nestled deep within the process tree. You can drag the toolbar button that looks like a target onto any open window to automatically identify and highlight that window's main process.
When you've located a problematic process, you can tweak it in a variety of ways. For example, you can kill the process, temporarily suspend it, or restart it completely. You can even throttle the process' priority or attach a debugger for more detailed troubleshooting. With the click of a mouse, suspicious processes and files can be looked up on the internet to help identify and eradicate stubborn malware. These features are available from the Process dropdown menu.
Process Explorer provides plenty of data to help analyze the performance of processes running within Windows. It again outdoes Windows Task Manager by providing all the same information plus a lot more. Real time graphs give you new perspectives through which you can view the inner workings of Windows.
Figure 3: Real time graphs & data help to visualize Windows’ inner workings.
Memory spikes, page faults, I/O bottlenecks and more can all be seen through Process Explorer's System Information dialog box. You can track how many threads, handles, and processes are active at any one time and identify which processes are responsible. Inefficient memory churn can be identified and targeted for future optimization.
Other Free Goodies
In addition to Process Explorer, Microsoft's Windows Sysinternals web site has dozens of other free utilities that may prove to be useful from time to time. Process Monitor (pictured below) is one of the more popular, and it complements Process Explorer fairly well. Process Monitor's primary purpose is to provide advanced, real-time file system and registry monitoring. Old timers may be familiar with the deprecated Filemon and Regmon utilities that were replaced by this Process Monitor application.
Figure 4: Process Monitor compliments Process Explorer’s features with an emphasis on file and registry monitoring.
Some of the many other potentially useful utilities include DiskMon (for monitoring hard disk activity), PortMon (for monitoring serial and parallel ports), RootkitRevealer (for detecting malware), WhoIs (for finding Internet address owners), and ZoomIt (for presentations/annotations).
A couple features that virtually all of the listed utilities have in common are tiny download sizes and no installation required. Simply download the compressed file, unzip the EXE and then run it.
You no longer have to suffer from frustrations related to mysterious file locks, hung processes, and other resource ambiguity. Process Explorer provides the information you need to get to the bottom of these issues so your software and workstation can run optimally. I suggest you visit the Windows Sysinternals web site to download Process Explorer and investigate their other free utilities in more detail. The site provides a variety of support options including forums, blogs, documentation, and video tutorials.
Steve C. Orr is an ASP Insider, MCSD, Certified ScrumMaster, Microsoft MVP in ASP.NET, and author of the book “Beginning ASP.NET 2.0 AJAX” by Wrox press. He’s been developing software solutions for leading companies in the Seattle area for more than a decade. When he’s not busy designing software ...
This author has published 9 articles on DotNetSlackers. View other articles or the complete profile here.
Please login to rate or to leave a comment.