Performance Analysis Tool for Java™ is much different than other widely available performance tools. Because it does not employ profiling, it does not have high overhead; therefore, the likelihood of possible down time is greatly reduced. This characteristic makes this tool particularly attractive for production environments, where starting and stopping to evaluate performance results can greatly harm productivity.
When a resource is constraining the system, it is crucial to find threads that consume the majority of system resources. Performance Analysis Tool for Java analyzes the Windows® performance log and Java thread dumps and automatically detects Java threads that consume the majority of system resources. Examples of such threads are as follows:
- Processor resource: The amount of processor time for each Java thread can be identified. Monitoring of processor time for each Java thread and of the total processor time provides valuable information about processor use and specific Java threads that consume unexpected amounts of processor resources. Total processor time represents the percentage of elapsed time in which processors are busy executing non-idle Java threads.
- Paging: the amount of input and output going to disk drive paging. It is often useful to be able to monitor the paging use on a system because this use will have a direct effect on the performance of a Java application running on the system: Excessive paging could use substantial hard disk devices. In order to determine the impact of excessive paging on disk activity, monitor the paging. If paging is constantly large, adding more physical memory is recommended.
- Memory: virtual address space. Monitoring the process size makes it possible to determine whether performance degradation is caused by the exhaustion of the virtual address space, which is a strong indication of a “native” memory leak rather than a leak involving Java objects.