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

ASF subversion and git services commented on AVRO-2068:
-------------------------------------------------------

Commit 1e77a401b951a481b8175e9e5f99afeebd9acf75 in avro's branch 
refs/heads/master from David Mollitor
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=1e77a40 ]

AVRO-2068: Improved static class constructor performance


> Improve EnumSchema constructor performance
> ------------------------------------------
>
>                 Key: AVRO-2068
>                 URL: https://issues.apache.org/jira/browse/AVRO-2068
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Zoltan Farkas
>            Priority: Trivial
>
> at 
> https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/Schema.java#L745
>  :
> {code}
> ....
>   private static class EnumSchema extends NamedSchema {
>     private final List<String> symbols;
>     private final Map<String,Integer> ordinals;
>     public EnumSchema(Name name, String doc,
>         LockableArrayList<String> symbols) {
>       super(Type.ENUM, name, doc);
>       this.symbols = symbols.lock();
>       this.ordinals = new HashMap<String,Integer>();
>       int i = 0;
>       for (String symbol : symbols)
>         if (ordinals.put(validateName(symbol), i++) != null)
>           throw new SchemaParseException("Duplicate enum symbol: "+symbol);
>     }
> ....
> {code}
> should be changed to:
> {code}
> ....
>   private static class EnumSchema extends NamedSchema {
>     private final List<String> symbols;
>     private final Map<String,Integer> ordinals;
>     public EnumSchema(Name name, String doc,
>         LockableArrayList<String> symbols) {
>       super(Type.ENUM, name, doc);
>       this.symbols = symbols.lock();
>       this.ordinals = new HashMap<String,Integer>(symbols.size());
>       int i = 0;
>       for (String symbol : symbols)
>         if (ordinals.put(validateName(symbol), i++) != null)
>           throw new SchemaParseException("Duplicate enum symbol: "+symbol);
>     }
> ....
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to