[ https://issues.apache.org/jira/browse/AVRO-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Doug Cutting updated AVRO-939: ------------------------------ Attachment: AVRO-939.patch Here's the same patch but with a benchmark added to Perf.java. This can be run with: mvn exec:java -Dexec.classpathScope="test" -Dexec.mainClass="org.apache.avro.io.Perf" -Dexec.args="-bc" On a 32-bit machine shorter byte arrays (~10 bytes) the older implementation is considerably faster. For medium byte arrays (~100 bytes) they're about even, and for longer byte arrays (~1000 bytes) the new implementation is about 20% faster. Can someone try this with a 64-bit JVM? > Java: optimize BinaryData#compareBytes() to use sun.misc.Unsafe when available > ------------------------------------------------------------------------------ > > Key: AVRO-939 > URL: https://issues.apache.org/jira/browse/AVRO-939 > Project: Avro > Issue Type: New Feature > Components: java > Affects Versions: 1.7.1 > Reporter: Doug Cutting > Attachments: AVRO-939-1.patch, AVRO-939-2.patch, AVRO-939-3.patch, > AVRO-939-4.patch, AVRO-939.patch > > > Google's Guava libraries include an optimized implementation of lexicographic > byte comparison based on sun.misc.Unsafe that's ~4x faster than the normal > Java implementation. > http://hiroshiyamauchi.blogspot.com/2010/08/fast-unsigned-byte-lexicographical.html > http://www.google.com/codesearch#UKMs0lhE9bg/trunk/src/com/google/common/primitives/UnsignedBytes.java&l=276 > We might similarly optimize BinaryData#compareBytes(). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira