RFR: 8300493: Use ArraysSupport.vectorizedHashCode in j.u.zip.ZipCoder
Claes Redestad
redestad at openjdk.org
Thu Jan 19 09:49:12 UTC 2023
On Wed, 18 Jan 2023 16:53:04 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> `ZipCoder::checkedHashCode` emulates `StringLatin1::hashCode` but operates on a `byte[]` subrange. It can profitably use the recently introduced `ArraysSupport::vectorizedHashCode` method to see a speed-up, which translates to a small but significant speed-up on `ZipFile` creation.
>
> Before:
>
> Benchmark (size) Mode Cnt Score Error Units
> ZipFileOpen.openCloseZipFile 512 avgt 15 83007.325 ± 1446.716 ns/op
> ZipFileOpen.openCloseZipFile 1024 avgt 15 154550.631 ± 2166.673 ns/op
>
> After:
>
> Benchmark (size) Mode Cnt Score Error Units
> ZipFileOpen.openCloseZipFile 512 avgt 15 79512.902 ± 814.449 ns/op
> ZipFileOpen.openCloseZipFile 1024 avgt 15 147892.522 ± 2744.017 ns/op
FWIW the micro is derived from the sibling `ZipFileGetEntry` micro in the same directory. It's not exactly necessary for this use case to add such a benchmark, but I think there's value in verifying that optimizing `checkedHash` improves `ZipFile` setup and adding the micro might allow us to find further opportunities down the line.
-------------
PR: https://git.openjdk.org/jdk/pull/12077
More information about the security-dev
mailing list