- When taking a heap snapshot, the overhead on the profiled JVM is now as small as possible. The remaining memory overhead is mainly due to the profiling interface of the JVM. This allows you to take heap snapshots for very large heaps.
- It is now possible to open large snapshots regardless of the amount of physical memory that you have on the machine where the JProfiler GUI is running. If not enough memory is available to keep object indexes in memory, a disk-based fallback will be used.
- We can now implement features in the heap walker that require a more advanced analysis of the heap. The biggest objects view below is the first such result.
CPU data is now stored and loaded in a more memory-efficient way. The notable improvements are:
- When profiling, CPU data of dead threads are periodically saved to disk in order to minimize the memory overhead on the profiled JVM. For long-running applications that constantly create new threads this makes a big difference.
- When loading snapshots, not all CPU data is loaded into memory, but only the parts that are required for displaying data are selectively loaded from the snapshot. This applies to snapshots that have been saved with JProfiler 5.2+.