Performance of StringSearchModelInterpolator could be much better
-----------------------------------------------------------------

                 Key: MNG-5077
                 URL: http://jira.codehaus.org/browse/MNG-5077
             Project: Maven 2 & 3
          Issue Type: Improvement
          Components: Inheritance and Interpolation
    Affects Versions: 3.0.3
         Environment: Maven 3.0.3 trunk
            Reporter: Jörg Waßmer
            Priority: Minor


Currently I am investigating performance problems with the large project trees 
(100+ projects).
The main cause is the Netbeans Maven Plugin, but I also found and fixed a 
bottleneck in Maven itself, in class 
org.apache.maven.model.interpolation.StringSearchModelInterpolator.

I created a patch against the today's Maven 3 trunk, 
https://svn.apache.org/repos/asf/maven/maven-3/trunk.

It does following:
- don't use AccessController if no SecurityManager is active.
- don't call java.lang.reflect.Field.setAccessible(false). It is not necessary, 
because the Field object are never exposed to outside the class.
- getFields(Class) now determines which fields are qualified for interpolation, 
instead of determining it again on each call to traverseObjectWithParents().

The behaviour is exactly the same as before. The performance is much better. 
Formerly about 12500 ms for all projects, now about
4500, where most of the CPU time is consumed by 
StringSearchModelInterpolator.interpolateInternal().


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to