Hello,

Please review a performance enhancement for java.util.CRC32C pure Java implementation.

rfe: https://bugs.openjdk.java.net/browse/JDK-8191328
webrev: http://cr.openjdk.java.net/~dchuyko/8191328/webrev.00/
some results: https://bugs.openjdk.java.net/browse/JDK-8191328?focusedCommentId=14131194&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14131194 mail thread on original implementation: http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-October/029187.html

I made 2 changes:

* Move ByteOrder.nativeOrder() branches outside of main loops.

* Break xors and loads into independent pairs.

In some specific cases like -Xcomp it gives 2-7x boost. The code size has not increased significantly.

Changes were checked by comparison with golden checksums on different lengths of arrays and buffers, on x86 and aarch64, though both 64-bit Little-Endian.

-Dmitry

Reply via email to