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