[
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