[ https://issues.apache.org/jira/browse/SLING-3844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14102254#comment-14102254 ]
Rob Ryan commented on SLING-3844: --------------------------------- See my updated comment above. There is no way without the reverse mapping I can see. The key is that we need cheap name to alias mapping for the map() method to maintain its existing contract but improve performance. > Resolver.map() spends too much time looking up sling:alias > ---------------------------------------------------------- > > Key: SLING-3844 > URL: https://issues.apache.org/jira/browse/SLING-3844 > Project: Sling > Issue Type: Improvement > Components: ResourceResolver > Affects Versions: Resource Resolver 1.1.0 > Reporter: Rob Ryan > Assignee: Antonio Sanso > Labels: Performance > Attachments: sling.resourceresolver.diff > > > In a performance test expected to reflect reasonably real-world conditions > (50 concurrent users of a mixed load 'forum' type application) I found > Resolver.map taking more that 30% of the time used. This was tracked > primarily to checking each path element of the mapped path for sling:alias > properties to substitute into the result. > In consultation with [~cziegeler] and [~asanso] I proceeded to implement the > inverse of Antonio's work on sling:alias for Resolver.resolve. The resulting > patch is attached. In our case the Resolver.map cost fell from 30% of time > used to 5%. > If the resource.resolver.optimize.alias.resolution setting of the Apache > Sling Resource Resolver Factory is set to false then the patch fallback to > the original method of finding aliases. When the optimization is enabled the > aliases are looked up in hash maps maintained by observation and queries for > sling:alias along the same lines as Antonio's work. -- This message was sent by Atlassian JIRA (v6.2#6252)