[ https://issues.apache.org/jira/browse/SOLR-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12657692#action_12657692 ]
Yonik Seeley commented on SOLR-912: ----------------------------------- While we're going down the micro-benchmarking path, I tried eliminating ArrayList and got an additional 15-25% gain on common operations (create new, add between 5 and 15 elements, and then iterate over those elements later). This was with Java 1.6. -Xbatch improved the results even more... ~40% - but this is just a micro-benchmark. {code} class NamedList2<T> implements INamedList<T> { protected NamedListEntry<T>[] nvPairs; protected int size; public NamedList2() { nvPairs = new NamedListEntry[10]; size = 0; } @Override public int size() { return size; } @Override public String getName(int idx) { if (idx >= size) throw new ArrayIndexOutOfBoundsException(); return nvPairs[idx].key; } @Override public T getVal(int idx) { if (idx >= size) throw new ArrayIndexOutOfBoundsException(); return nvPairs[idx].value; } private void resize() { NamedListEntry<T>[] arr = new NamedListEntry[nvPairs.length << 1]; System.arraycopy(nvPairs, 0, arr, 0, size); nvPairs = arr; } @Override public void add(String name, T val) { if (size >= nvPairs.length) { resize(); } nvPairs[size++] = new NamedListEntry<T>(name, val); } [...] {code} > org.apache.solr.common.util.NamedList - Typesafe efficient variant - > ModernNamedList introduced - implementing the same API as NamedList > ---------------------------------------------------------------------------------------------------------------------------------------- > > Key: SOLR-912 > URL: https://issues.apache.org/jira/browse/SOLR-912 > Project: Solr > Issue Type: Improvement > Components: Analysis > Affects Versions: 1.4 > Environment: Tomcat 6, JRE 6, Solr 1.3+ nightlies > Reporter: Kay Kay > Priority: Minor > Fix For: 1.3.1 > > Attachments: NLProfile.java, SOLR-912.patch > > Original Estimate: 72h > Remaining Estimate: 72h > > The implementation of NamedList - while being fast - is not necessarily > type-safe. I have implemented an additional implementation of the same - > ModernNamedList (a type-safe variation providing the same interface as > NamedList) - while preserving the semantics in terms of ordering of elements > and allowing null elements for key and values (keys are always Strings , > while values correspond to generics ). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.