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

Reply via email to