[ 
https://issues.apache.org/jira/browse/SLING-4568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14482731#comment-14482731
 ] 

Joel Richard commented on SLING-4568:
-------------------------------------

Instead of a simple HashMap we could use a data structure dedicated for caches 
(which is limited or where the items expire). It would probably also make sense 
to clear the cache in commit(). Another approach would be to enable this cache 
only for requests or even only for GET requests.

> Performance: MergingResourceProvider.ParentHidingHandler adds about 30% 
> rendering overhead
> ------------------------------------------------------------------------------------------
>
>                 Key: SLING-4568
>                 URL: https://issues.apache.org/jira/browse/SLING-4568
>             Project: Sling
>          Issue Type: Bug
>          Components: ResourceResolver
>    Affects Versions: Resource Merger 1.2.8
>            Reporter: Joel Richard
>            Priority: Critical
>              Labels: performance
>         Attachments: SLING-4568.patch
>
>
> When I was analysing all read properties, I noticed a recurring pattern with 
> sling:hideChildren and jcr:primaryType and that more than 40% of the read 
> properties are sling:hideChildren. I figured out that sling:hideChildren is 
> read for all parents in MergingResourceProvider.ParentHidingHandler and that 
> the requests are processed 30-35% faster just by commenting out the 
> constructor code.
> Apache Benchmark results with normal ParentHidingHandler:
> {quote}
>   50%    272
>   66%    276
>   75%    278
>   80%    281
>   90%    289
>   95%    301
>   98%    493
>   99%    497
> {quote}
> Results with commented out ParentHidingHandler constructor: 
> {quote}
>   50%    185
>   66%    188
>   75%    191
>   80%    194
>   90%    202
>   95%    210
>   98%    333
>   99%    338
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to