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

Reply via email to