[ https://issues.apache.org/jira/browse/SOLR-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12786348#action_12786348 ]
Noble Paul edited comment on SOLR-912 at 12/5/09 6:34 AM: ---------------------------------------------------------- bq.The performance numbers in here say a different story I'm not referring to perf numbers here . It is memory efficiency. bq. As regarding Entry Objects being a memory hog - do we have some stats to back it up. We don't need stats for everything. we should know about how VM holds objects . Let me illustrate with a case of consider 5 key->values on a 32 bit m/c NamedList(Backed by arraylist) one Object [] + array size= 4 + 5 * 2*4 (bytes) = 44 bytes + the overhead of ArrayList ModernNamedList one Object[] + 5 entry objects (16 bytes object overhead + each has 2 references of 4+4 bytes)+ array size () = 4 + 16*5+ 5*2*4 + 5*4 = 144 bytes+ the overhead of ArrayList Add to this the overhead of GC'ing 5 entry objects reference : http://www.cs.virginia.edu/kim/publicity/pldi09tutorials/memory-efficient-java-tutorial.pdf was (Author: noble.paul): bq.The performance numbers in here say a different story I'm not referring to perf numbers here . It is memory efficiency. bq. As regarding Entry Objects being a memory hog - do we have some stats to back it up. We don't need stats for everything. we should know about how VM holds objects . Let me illustrate with a case of consider 5 key->values on a 32 bit m/c NamedList(Backed by arraylist) one Object [] + array size= 4 + 5 * 2*4 (bytes) = 44 bytes + the overhead of ArrayList ModernNamedList one Object[] + 5 entry objects (each has 2 references of 4+4 bytes)+ array size () = 4 + 5*2*4 + 5*4 = 64 bytes+ the overhead of ArrayList Add to this the overhead of GC'ing 5 entry objects > 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: search > Environment: Tomcat 6, JRE 6, Solr 1.3+ nightlies > Reporter: Kay Kay > Priority: Minor > Attachments: NLProfile.java, SOLR-912.patch, 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.