[ https://issues.apache.org/jira/browse/JCR-2218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dürig updated JCR-2218: ------------------------------- Attachment: JCR-2218.patch Proposed patch implementing the approach from my last comment. While this shouldn't have any negative performance impact on flat hierarchies, it shows an overall (*) performance gain up to 20% on deep hierarchies. (*) Session.getItem() on a deep hierarchy. > NodeEntryImpl.getWorkspaceId() very inefficient > ------------------------------------------------ > > Key: JCR-2218 > URL: https://issues.apache.org/jira/browse/JCR-2218 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-jcr2spi > Reporter: Michael Dürig > Attachments: JCR-2218.patch > > > NodeEntryImpl.getWorkspaceId() calculates its path on each call by calling > itself recursively. Further each call to getWorkspaceId() results in various > calls to the path and item factories which might be somewhat expensive by > themselves. > In my test scenario I have a RepositoryService.getItemInfos() call returning > ~1000 items. Processing these items results in about 2700000 (!) calls to > getWorkspaceId(). Profiler data shows, that 98% of the time to process the > 1000 items is spent in getWorkspaceId() and related calls. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.