You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "David Mollitor (Jira)" <ji...@apache.org> on 2020/01/17 21:31:00 UTC

[jira] [Created] (AVRO-2696) Improve Avro Double and Float Encode Performance

David Mollitor created AVRO-2696:
------------------------------------

             Summary: Improve Avro Double and Float Encode Performance
                 Key: AVRO-2696
                 URL: https://issues.apache.org/jira/browse/AVRO-2696
             Project: Apache Avro
          Issue Type: Improvement
            Reporter: David Mollitor
            Assignee: David Mollitor


I was looking at how Avro encodes Doubles and Floats and comparing it to Java's.

So, I checked it out and found that the Java version for Floats is faster than Avro using the Avro perf tests:

{code}
# Avro Impl
FloatTest.encode  thrpt    3  273709210.133 ± 49629107.871  ops/s
FloatTest.encode  thrpt    3  271515727.631 ± 57405372.266  ops/s

# Java Impl
FloatTest.encode  thrpt    3  278234438.923 ± 34633982.243  ops/s
FloatTest.encode  thrpt    3  284801936.136 ± 52273884.157  ops/s
{code}

Interestingly, I wasn't able to reproduce this gain with Doubles.  Avro's version was faster.  However, we can remove the bitwise mask (Java doesn't bother to do it).

https://github.com/openjdk/jdk/blob/6bab0f539fba8fb441697846347597b4a0ade428/src/java.base/share/classes/java/io/Bits.java#L105



--
This message was sent by Atlassian Jira
(v8.3.4#803005)