RFR: JDK-8326586: Improve Speed of System.map

Thomas Stuefe stuefe at openjdk.org
Tue Feb 27 07:25:55 UTC 2024


On Fri, 23 Feb 2024 15:31:27 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> A small optimization that speeds up `jcmd pid System.map` by orders of magnitude by optimizing NMT cache lookup for sequential accesses. This cache is used to map NMT against System information - and the latter usually comes in sequential form, e.g. scanned from `/proc/<pid>/maps` or via VirtualQuery.
> 
> On Linux x64, `System.map`for a JVM with an artificially bloated process space (1 million mappings) takes:
> 
> before this patch: 6.3 minutes
> with this patch: 4.2 seconds
> 
> which is a 87x speed improvement.
> 
> Ping @jdksjolen and @gerard-ziemski?

@stefank @dholmes-ora 
I changed the type to size_t. It was the easiest. I considered using `unsigned`, but I did not want to deal with clamping and overflows when calculating the new capacity on grow.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17984#issuecomment-1965934087


More information about the hotspot-runtime-dev mailing list