Hi Ralf,

- diagnosticCommand.cpp
 You can use `DCmdArgument<jlong>` for -gz option.
 If you want to use lesser type (e.g. int, unsigned char), I guess you need to 
modify GenDCmdArgument class.

- heapDumper.cpp
 _nr_of_threads, _id_to_write, _current in CompressionBackend should be added 
`volatile` at least.
 (Other values need to be checked)


BTW how much processing time is different between single threaded and multi 
threaded?
Also I want to know what number is set to ParallelGCThreads.
ParallelGCThreads seems to affect to thread num for GZip compression.


Thanks,

Yasumasa


On 2020/02/07 21:14, Schmelter, Ralf wrote:
Hi everyone,

this change adds the option to write a hprof heap dump directly gzipped. 
Currently this is supported for the GC.heap_dump diagnostic command via the 
“-gz” flag.

Since gzip is not particular fast when compressing the data, the actual 
compression will be done parallel in a bunch of background threads.

The created file itself is not a single gzip stream, but a concatenation of 
streams of about 1 MB gzippped data. This makes it easier to parallelize the 
compression and it allows for an at least semi-efficient random access to the 
created file. I’ve adjusted the jhat library to be able to directly parse a 
such a gzipped hrpof  file, without the need of prior decompression.

bugreport: https://bugs.openjdk.java.net/browse/JDK-8237354

webrev: http://cr.openjdk.java.net/~rschmelter/webrevs/8237354/webrev.0/

If this get reviewed, a CSR is still needed for the change to the GC.heap_dump 
command.

Best regards,

Ralf

Reply via email to