[ https://issues.apache.org/jira/browse/AVRO-315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800170#action_12800170 ]
Thiruvalluvan M. G. commented on AVRO-315: ------------------------------------------ As pointed out by Doug, this introduces a change in semantics. I think it's desirable to keep the property that the decoder does not take more bytes off the input stream than necessary. That property will allow the input stream not rewindable. In any case, since the optimization for readLong() did not show much improvement in performance and the we may need more time to settle on the new proposal, I'm going ahead and committing the other optimization for readFloat() and readDouble(). I've created a new JIRA AVRO-327 to take improvement to readLong() forward. > Performance improvements to BinaryDecoder > ----------------------------------------- > > Key: AVRO-315 > URL: https://issues.apache.org/jira/browse/AVRO-315 > Project: Avro > Issue Type: Improvement > Components: java > Reporter: Thiruvalluvan M. G. > Assignee: Thiruvalluvan M. G. > Attachments: AVRO-315-prototype.patch, AVRO-315-test.patch, > AVRO-315.patch, AVRO-315.patch > > > 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.