[ 
https://issues.apache.org/jira/browse/AVRO-557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12874789#action_12874789
 ] 

Scott Carey commented on AVRO-557:
----------------------------------

bq. 2) BinaryDecoders now created a bunch of arrays and got more complicated, 
again significantly slowing down one time usage.

Either configure the factory to have a small default buffer size (256 byte  
will be fine), or use the DirectBinaryDecoder, which is basically the 1.2 
decoder.  See 
DecoderFactory, and its configureDecoderBufferSize(), configureDirectDecoder() 
and createXXX factory methods.
You can configure your own factory instance, the default factory does not allow 
you to configure it.

The BinaryDecoder is optimized for the case where you are keeping one around 
and re-using it.  If possible, keep them around.  You can use something like a 
ThreadLocal<BinaryDecoder> to make this easier.  DirectBinaryDecoder will have 
smaller initialization costs, but will be about 1.5x to 5x slower when 
streaming large amounts of data.

If you aren't reading from a stream, but are reading from a byte[]. the new 
decoder will work without creating its own array as well if you use the 
createBinaryDecoder(byte[], .  .  . ) factory methods.  You can reuse a decoder 
and reset its state from these as well. 

> Speed up one-time data decoding
> -------------------------------
>
>                 Key: AVRO-557
>                 URL: https://issues.apache.org/jira/browse/AVRO-557
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.3.2
>            Reporter: Kevin Oliver
>            Assignee: Kevin Oliver
>             Fix For: 1.4.0
>
>         Attachments: AVRO-557.patch
>
>
> There are big gains to be had in performance when using a BinaryDecoder and a 
> GenericDatumReader just one time. This is due to the relatively expensive 
> parsing and initialization that came with 1.3. Patch with example code and a 
> Perf harness to follow.

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

Reply via email to