[ 
https://issues.apache.org/jira/browse/JCR-2218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739985#action_12739985
 ] 

Michael Dürig commented on JCR-2218:
------------------------------------

Another alternative approach (due to Angela): Instead of constructing the ids 
from the parent  id and the name (which is quite expensive), traverse up to 
either root or a uuid and collect the respective path elements. The use the 
root or the uuid respectively and the collected path elements to construct the 
id.

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