[
https://issues.apache.org/jira/browse/KAFKA-3174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15127127#comment-15127127
]
Ismael Juma commented on KAFKA-3174:
------------------------------------
Unfortunately, the micro-benchmark above is not reliable. That's why I used JMH
(which is maintained by the Oracle JVM team for their own Java benchmarks) for
my benchmarks. See
https://groups.google.com/d/msg/mechanical-sympathy/m4opvy4xq3U/7lY8x8SvHgwJ
for why you should use JMH for nano and micro-benchmarks.
The Intel CRC32 instruction is for CRC32C, which uses a different polynomial
than the one we use for Kafka (again, see KAFKA-1449 for more details on this).
I actually checked the HotSpot code
(http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/b800986664f4) and the
assembly generated by the HotSpot JIT to verify my assertion before I posted my
previous comment with regards to SSE 2, SSE 4.1, AVX and CLMUL being used.
> Re-evaluate the CRC32 class performance.
> ----------------------------------------
>
> Key: KAFKA-3174
> URL: https://issues.apache.org/jira/browse/KAFKA-3174
> Project: Kafka
> Issue Type: Improvement
> Affects Versions: 0.9.0.0
> Reporter: Jiangjie Qin
> Assignee: Jiangjie Qin
> Fix For: 0.9.0.1
>
>
> We used org.apache.kafka.common.utils.CRC32 in clients because it has better
> performance than java.util.zip.CRC32 in Java 1.6.
> In a recent test I ran it looks in Java 1.8 the CRC32 class is 2x as fast as
> the Crc32 class we are using now. We may want to re-evaluate the performance
> of Crc32 class and see it makes sense to simply use java CRC32 instead.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)