avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thiruvalluvan M. G. (JIRA)" <j...@apache.org>
Subject [jira] Created: (AVRO-316) Optiminzing inner loop functions of Avro io
Date Wed, 13 Jan 2010 12:42:54 GMT
Optiminzing inner loop functions of Avro io

                 Key: AVRO-316
                 URL: https://issues.apache.org/jira/browse/AVRO-316
             Project: Avro
          Issue Type: Improvement
            Reporter: Thiruvalluvan M. G.
            Assignee: Thiruvalluvan M. G.

The methods advance() and pushProduction() of org.apache.avro.io.parsing.Parser class are
invoked at least once per read/write call on ValidatingDecoder, ResolvingDecoder and ValidatingEncoder.
Any optimization in these functions will improve overall performance when using these classes.

Try org.apacge.avro.io.Perf -V to see the effect of this patch on the performance. On my machine
it gives about 5 to 8% improvement.

The optimizations are:
   - Reorder the code within advance() so that the most frequent paths involve minimal comparisons.
   - Repleace Symbol.CONTINUE with null to indicate that next symbol on the stack needs to
be looked at.
   - Get rid of a parameter to pushProduction. This parameter was used only in one call site
of that function; others pass null. Refactored the code so that these invocations do not pay
for that piece of logic that they don't use.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message