RFR: 8341594: Use Unsafe to coalesce reads in java.util.zip.ZipUtils [v2]

Chen Liang liach at openjdk.org
Sun Oct 6 16:01:34 UTC 2024


On Sun, 6 Oct 2024 15:48:57 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

>> Sure, I think the JIT is pretty good at eliminating the (intrinsic) `checkIndex` calls when they are redundant though. Performance with and without these `checkIndex`es are the same in my testing, so we can eat and have the cake on this one.
>> 
>> FWIW I wouldn't mind giving similar treatment to `ByteArray(-LittleEndian)` and avoid the `VarHandles` dependency in those utility classes, but I have no urge to get into the sort of discussions that were spawned in #19616
>
>> Actually if we trust the input index to be nonnegative, we can just check our end index for out of bounds too.
> 
> I would not trust that. Perhaps for well-formed ZIP files, but trust me, not all ZIPs are well-formed ;-)

Yep, that requires you to pre-validate the input argument as a fixed position after already-read content, which is not always the case.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21377#discussion_r1789146112


More information about the core-libs-dev mailing list