[ 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.patch By using a simple cache, the overhead can be reduced drastically: {quote} 50% 198 66% 202 75% 205 80% 206 90% 230 95% 270 98% 337 99% 352 {quote} In addition to the changes in the patch, it could make sense to cache ancestorChildrenToHideArray separately. > 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)