On Wed, 8 Nov 2023 11:55:22 GMT, Glavo <d...@openjdk.org> wrote:

> This PR significantly speeds up decompressing resources in Jimage while 
> significantly reducing temporary memory allocations in the process.
> 
> This will improve startup speed for runtime images generated using `jlink 
> --compress 1` and `jlink --compress 2` .
> 
> I generated a runtime image containing javac using `jlink --compress 1 
> --add-modules jdk.compiler` and tested the time it took to compile a simple 
> HelloWorld program 20 times using `perf stat -r20 javac 
> /dev/shm/HelloWorld.java`, this PR reduces the total time taken from 17830ms 
> to 13598ms (31.12% faster).

I'll need some time to review this thoroughly but skimming through it it seems 
like a very nice enhancement, making `--compress` more appealing - great work! 

One gotcha in this area is that `jlink` by default does not recreate the CDS 
archive. Startup might gain from generating out the default CDS archive (`java 
-Xshare:dump`), but not doing so is a reasonable thing to do if you're aiming 
for minimal static footprint. But to make comparisons fair you need to take 
care to compare apples to apples: is the uncompressed baseline a similar jlink 
image generated without `--compress`? Or the default JDK image (uncompressed, 
with CDS)?

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

PR Comment: https://git.openjdk.org/jdk/pull/16556#issuecomment-1819976620

Reply via email to