lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Noble Paul (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (SOLR-912) org.apache.solr.common.util.NamedList - Typesafe efficient variant - ModernNamedList introduced - implementing the same API as NamedList
Date Sat, 05 Dec 2009 06:36:20 GMT

    [ 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.


Mime
View raw message