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

Joel Richard updated SLING-4568:
--------------------------------
    Attachment: SLING-4568_exclude_search_paths.patch
                SLING-4568_experimental_cache.patch

I have renamed to previous patch to SLING-4568_experimental_cache.patch and 
attached a new patch which is simpler and even more efficient. It includes two 
changes:

* It let's you exclude search paths which should not be merged. In our case, we 
have 4 different search paths, but only two are relevant for the merging. By 
adding them to the excluded list, a lot of unnecessary getResource calls are 
avoided. Moreover, it makes it possible for us to benefit from the more 
important second change.
* The ParentHidingHandler is not not executed anymore for the last not excluded 
search path and is therefore only executed for the real overlays. This makes 
the MergingResourceProvider overhead negligible in most cases and makes the 
cache from the first patch irrelevant. 

> Performance: MergingResourceProvider.ParentHidingHandler adds about 30pp 
> 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_exclude_search_paths.patch, 
> SLING-4568_experimental_cache.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-35pp 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