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).
test/jdk/tools/jlink/plugins/CompressIndexesTest.java line 100: > 98: > 99: private void check(byte[] flow, List<byte[]> arrays) { > 100: List<Integer> d = > Arrays.stream(CompressIndexes.decompressFlow(flow)).boxed().toList(); Can we rewrite this as int[] d = CompressIndexes.decompressFlow(flow); int[] dd = new int[arrays.length]; for (int j = 0; j < arrays.length; j++) { byte[] b = arrays[j]; dd[j] = CompressIndexes.decompress(b, 0); } if (!Arrays.equals(d, dd) { //... } ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16556#discussion_r1400744398