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

Alexandre Normand commented on AVRO-1268:
-----------------------------------------

I think the additional {{#getClassProp}} calls is one of the causes for the 
performance hit. In the cases where we're looking for the class to then check 
if it's stringable, I think I could make this faster by just dealing with 
strings (have a string stringable list and a {{#isStringable}} that uses the 
full qualified name instead of the class object). I hacked a test removing the 
{{#getClassProp}} from writeElement/readElement and got better numbers already: 

{code}
Executing tests: 
[FooBarSpecificRecordTest]
 readTests:true
 writeTests:true
 cycles=800
                    test name     time    M entries/sec   M bytes/sec  
bytes/cycle
 FooBarSpecificRecordTestRead:  19788 ms       0.842        49.112       1214805
FooBarSpecificRecordTestWrite:   8543 ms       1.951       113.752       1214805
{code} 

I'm going to try and make those changes and have a new patch this evening.
                
> Add java-class, java-key-class and java-element-class support for stringable 
> types to SpecificData
> --------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-1268
>                 URL: https://issues.apache.org/jira/browse/AVRO-1268
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.7.4
>            Reporter: Alexandre Normand
>            Assignee: Alexandre Normand
>            Priority: Minor
>             Fix For: 1.7.5
>
>         Attachments: AVRO-1268.patch, AVRO-1268.patch
>
>
> Stringable types are java classes that can be serialized through strings 
> (which require a single string constructor and a valid toString() 
> implementation). ReflectData currently has support from stringable types but 
> it would be desirable to get this feature with SpecificData. 
> The work involves changes to the SpecificCompiler (depends on {{@java-class}} 
> support in AVRO-1267) to generate the specific sources with the proper java 
> type as well as moving the ReflectDatumReader and ReflectDatumWriter to read 
> the java-class/java-key-class and java-element-class properties. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to