Hi,
I need help in reviewing the fix for this one bug: 8008733. It was firstly observed in JDK 6 and already fixed there. The problem and the fix [1] looks trivial: There is a performance regression in XPathContext class constructor and it's caused by double initialization of 'm_dtmManager' field: one in the variable initializer and another in the XPathContext constructor. The fix is to remove the variable initializer. I don't think we need a regression test for it, but we need to make sure the regression is gone. In attempt to prove it, I have done two simple hprof run [2] on a test app [3] that creates 100000 instances of XPathContext in a cycle. And I've got the following results: 1. Without fix: The call count to 'com.sun.org.apache.xml.internal.dtm.DTMManager.newInstance' is 200000. The average execution time was 20400 ms.
2. With fix: Call count = 100000. The average execution time = 15200 ms.
According to this data the performance regression is gone.

Thanks,
-Aleksej

[1] http://cr.openjdk.java.net/~aefimov/8008733/webrev.00/
[2] Without fix: http://cr.openjdk.java.net/~aefimov/8008733/hprof_nofix.txt
With fix: http://cr.openjdk.java.net/~aefimov/8008733/hprof_withfix.txt
[3] http://cr.openjdk.java.net/~aefimov/8008733/XPathContextPerformance.java

Reply via email to