[ https://issues.apache.org/jira/browse/JCR-2524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840074#action_12840074 ]
Thomas Mueller commented on JCR-2524: ------------------------------------- > Caching the most recently used DocIds and reuse them might help to reduce the > memory usage +1 > DocIds that could be represented with a short instead of an int According to my test, this will not reduce memory usage: http://h2database.com/p.html#da4c6a321d0dc84a2b7b96cdbf468a47 For the Sun JVM (JDK 1.5, 32 bit), objects with one field of type boolean, byte, short, character, integer, and long all need 16 bytes. A small BigInteger uses 56 bytes, a small BigDecimal uses 32 bytes (probably re-uses the same BigInteger internally), and a String uses 24 bytes. Object uses 8 bytes. For JDK 1.6, 32 bit and 64 bit, it's a bit different: 20 bytes for an object, 24 bytes for boolean - long. For JDK 1.5, 64 bit, it's again different: 16 bytes for an object, 24 bytes for boolean - long. > Reduce memory usage of DocIds > ----------------------------- > > Key: JCR-2524 > URL: https://issues.apache.org/jira/browse/JCR-2524 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-core > Reporter: Marcel Reutegger > Priority: Minor > Attachments: JCR-2524.patch > > > Implementations of DocIds are used to cache parent child relations of nodes > in the index. Usually there are a lot of duplicate objects because a DocId > instance is used to identify the parent of a node in the index. That is, > sibling nodes will all have DocIds with the same value. Currently a new DocId > instance is created for each node. Caching the most recently used DocIds and > reuse them might help to reduce the memory usage. Furthermore there are > DocIds that could be represented with a short instead of an int when possible. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.