If you suspect that CPU usage may be causing performance bottlenecks, use the Call Attributed Profiler (CAP) tool, which is part of the Windows NT Server Resource Kit. This tool requires a special build of applications, but performs a detailed trace of every function call and how much time that call requires. It identifies frequently called functions that are slow and need to be optimized or called less often.
You can also use the CAP tool to parse the data into a Microsoft Excel readable format, and to identify calling functions and called functions.
A Microsoft Exchange Client application often opens multiple folders, but its performance is slow and you can see it redraw every message in the folder. This performance bottleneck can be identified by CAP profiling
In this case, CAP profiling results indicate that the application is asking for time-zone information on every call. Because time zone information does not often change, this information can be requested once, then saved for the entire session. This reduces the time spent making multiple calls, reduces CPU time, and improves performance significantly.
For more information, see CAP FLAGS in the Windows NT Server CAP.INI file.
Setting Up CAP.INI
Section in CAP.INI | Usage Notes |
---|---|
[EXES] | List the CAP-ready .EXE files to profile. The profiler automatically starts when you launch one of these .EXE files. |
[PATCH CALLERS] | List the DLLs called by the file names (not compiled for CAP) into %SystemRoot%\SYMBOLS\DLL. For example, if you put KERNEL32.DLL in this section, copy KERNEL32.DBG to %SystemRoot%\SYMBOLS\DLL. List DLLs built for profiling if you want to profile internal calls. Note that all exported functions in this DLL are listed twice. |
[OUTPUT FILE] | CAP output is directed to the file specified in the following line:
|
[CAP FLAGS] |
|
Refer to the Windows NT Server Resource Kit for CAP data analysis tools.