Uploaded image for project: 'Avro'
  1. Avro
  2. AVRO-315

Performance improvements to BinaryDecoder

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: 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.

        Attachments

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

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: