Avro
  1. Avro
  2. AVRO-315

Performance improvements to BinaryDecoder

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.3.0
    • Component/s: java
    • Labels:
      None

      Description

      The forthcoming patch improves the performance of BinaryDecoder.readLong(), readFloat() and readDouble().

      The test-patch has a command-line program Perf in org.apache.avro.io in the (test part of the source directory) which tests the performance of readInt() (which calls readLong()) readFloat() and readDouble(). On my machine, the patch improves the performance by 10% for readInt() and about 50% for readFloat() and readDouble().

      The idea is to unroll the loops in readLong(), readFloat() and readDouble(). There is a small change in doReadBytes() which checks for most common condition before less common ones.

      1. AVRO-315.patch
        2 kB
        Doug Cutting
      2. AVRO-315.patch
        5 kB
        Thiruvalluvan M. G.
      3. AVRO-315-prototype.patch
        16 kB
        Scott Carey
      4. AVRO-315-test.patch
        7 kB
        Thiruvalluvan M. G.

        Issue Links

          Activity

            People

            • Assignee:
              Thiruvalluvan M. G.
              Reporter:
              Thiruvalluvan M. G.
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development