Bug #3366
closedPerformance regression (9.6 - 9.8) building document using pull parser
100%
Description
Hi,
after upgrading from Saxon-HE 9.6.0-5 to 9.8.0-3 I observed during regression tests of our application that there is about 30% of performance loss when transforming an XML document of about 5KB size from byte array to NodeInfo.
I didn't change my code, only upgraded Saxon but I walked through the documentation of the latest version and didn't find any information that would suggest I should change my code.
I tested with the following Oracle JVMs:
-
jdk1.8.0_66
-
jdk1.8.0_121
-
jdk1.8.0_141
and the results are the same - performance degradation is still in place.
I created a performance benchmark that shows the problem. It takes about a minute and a half to finish for each version of Saxon.
It uses JMH(Java Microbenchmark Harness) library which generates csv(number of iterations with percentiles) and jfr(Java Flight Records - detailed stats about the Java process) reports and can be run using Maven with the following commands:
-
mvn clean install -Pold
-
mvn clean install -Pnew
where -Pold runs the benchmark with Saxon 9.6.0-5 and -Pnew with 9.8.0-3.
The reports are generated in a target directory of a project and are overwritten every time you run the test.
You can compare csv files for old and new Saxon version and you should observe that the old version of Saxon performs a lot better.
On my machine, which is Windows 7 Enterprise SP1 with 16GB of RAM and Intel Core i7 2.7GHZ, the old version transformed about 1 700 000 documents and the new one only 1 100 000 documents.
Artur
Files
Related issues
Please register to edit this issue