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