Solutions to Performance Problems |
|
|
Find computational bottlenecks. Finding performance bottlenecks in application code can be a very challenging task. Computational bottlenecks are segments of code that slow down the application due to ineffective use of the data structures, flawed algorithms, and badly designed code. |
Discover why an application is using more memory than it should. An application that uses an inordinate amount of memory reduces the available physical memory for itself as well as other programs, forcing the operating system to swap pages between memory and disk. Frequent swapping leads to serious overall system performance degradation. Locate memory leaks. A memory leak occurs in Java when an object is no longer needed but there is still a reference to it somewhere, preventing the garbage collector from automatically reclaiming the memory used by the object. Detecting memory leaks with the CodePro Profiler can be performed by comparing two or more memory snapshots |
Detect deadlocks. A "deadlock" in code is a condition where some threads are blocked waiting to enter a synchronization block or waiting to reenter a synchronization block. Threads of execution result from an application forking into two or more simultaneously running tasks. A thread can own one monitor while trying to obtain another monitor already held by another thread—causing a deadlock condition. |
