[ 
https://issues.apache.org/jira/browse/JCR-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated JCR-2744:
-------------------------------

    Attachment: TransientManyChildNodesTest.png

The attached graph shows already some performance improvement that I believe is 
mostly due to these changes. I see some gains also in other benchmarks, but 
it's hard to say whether it's this or some of the other recent improvements at 
work.

Re: getElements(); I'm actually hoping to get rid of this method entirely, 
which is why I so far haven't put too much effort into optimizing it.

Going even further, I believe we could (and should) merge the Path and 
Path.Element interfaces to further drop the number of objects we need to 
instantiate and track.


> Avoid element arrays in PathImpl
> --------------------------------
>
>                 Key: JCR-2744
>                 URL: https://issues.apache.org/jira/browse/JCR-2744
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-spi, jackrabbit-spi-commons
>            Reporter: Jukka Zitting
>         Attachments: TransientManyChildNodesTest.png
>
>
> The path handling code in spi-commons shows quite often in thread dumps and 
> profiling results, as the current implementation does quite a bit of 
> repetitive allocating and copying of path element arrays. We should be able 
> to streamline and simplify the path handling code by only tracking the latest 
> path element and a reference to the parent path. To do this efficiently we 
> may need to adjust some of the Path and PathFactory method declarations (that 
> currently assume element array -based paths) also in the SPI.

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