On Thu, 9 Nov 2023 02:07:57 GMT, Chen Liang <li...@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). > > src/java.base/share/classes/jdk/internal/jimage/decompressor/StringSharingDecompressor.java > line 111: > >> 109: int count = Short.toUnsignedInt(bytesIn.getShort()); >> 110: bytesOut[bytesOutOffset++] = (byte) ((count >> 8) & 0xff); >> 111: bytesOut[bytesOutOffset++] = (byte) (count & 0xff); > > Probably use `ByteArray.setUnsignedShort`: > Suggestion: > > ByteArray.setUnsignedShort(bytesOut, bytesOutOffset, count); > bytesOutOffset += 2; > > Same remark elsewhere. These classes need to be compiled with `--release 8`, so I can't use the `ByteArray`. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16556#discussion_r1387837310