[ 
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

        

Reply via email to