Rob Ryan created SLING-3844:
-------------------------------

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


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)

Reply via email to