Project

Profile

Help

Bug #3366

closed

Performance regression (9.6 - 9.8) building document using pull parser

Added by Artur Chylek over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Performance
Sprint/Milestone:
-
Start date:
2017-07-28
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.8
Fix Committed on Branch:
9.8
Fixed in Maintenance Release:
Platforms:

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

saxon-perf.zip (7.55 KB) saxon-perf.zip Artur Chylek, 2017-07-28 10:38

Related issues

Related to Saxon - Bug #3394: NullPointerException thrown in samples PullExamples-j - StaxBridgeDuplicateO'Neil Delpratt2017-08-15

Actions

Please register to edit this issue

Also available in: Atom PDF