Project

Profile

Help

Bug #2747

closed

Performance regression in 9.7.0.4 vs 9.1.0.8

Added by Anonymous over 8 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Performance
Sprint/Milestone:
-
Start date:
2016-05-13
Due date:
% Done:

0%

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

Description

I wanted to try out the new DITA Open Toolkit optimization in Saxon-EE. I was surprised to find that even with the optimization enabled for some parts of the DITA-OT publishing pipeline, publishing the DITA-OT user guide with Saxon-EE 9.7.0.4 is consistently around 10 seconds slower than with Saxon-B 9.1.0.8, which is what DITA-OT uses by default because some of the XSLT code in it relies on Java extensions. The total DITA-OT execution time for that document with Saxon-B 9.1.0.8 is around 20–25 seconds on my machine.

So I tried boiling down the issue to its absolute minimum, and I was surprised to find that Saxon 9.7.0.4 is much slower at performing a simple identity transformation than Saxon-B 9.1.0.8. For example:

$ time java -cp Saxon-HE-9.7.0-4.jar net.sf.saxon.Transform -repeat:12500 -xsl:identity.xsl -s:identity.xsl -o:/dev/null
*** Average execution time over last 6251 runs: 0.206689ms
32.67s user 0.57s system 142% cpu 23.396 total
$ time java -cp saxon-9.1.0.8.jar net.sf.saxon.Transform -repeat:12500 -xsl:identity.xsl -s:identity.xsl -o:/dev/null
*** Average execution time over 12500 runs: 1ms
14.59s user 0.13s system 103% cpu 14.173 total

In this simple transformation, Saxon-B 9.1.0.8 is over twice as fast over 12 500 repeats.

Is there something I'm missing? Maybe a configuration option I should toggle? With performance like this, using Saxon 9.7 with DITA-OT is pretty much a no-starter.

The performance is similar on my MacBook and on a Linux server I tested this on.


Files

Saxon-HE-9.7.0-4.txt (3.94 MB) Saxon-HE-9.7.0-4.txt java -cp Saxon-HE-9.7.0-4.jar net.sf.saxon.Transform -t -repeat:12500 -xsl:identity.xsl -s:identity.xsl -o:/dev/null --generateByteCode:off Anonymous, 2016-05-13 15:11
saxon-9.1.0.8.txt (4.8 MB) saxon-9.1.0.8.txt java -cp saxon-9.1.0.8.jar net.sf.saxon.Transform -t -repeat:12500 -xsl:identity.xsl -s:identity.xsl -o:/dev/null Anonymous, 2016-05-13 15:12
userguide_MERGED.xml (1.78 MB) userguide_MERGED.xml Anonymous, 2016-05-13 16:19
Saxon-HE-9.7.0-4_userguide.txt (353 KB) Saxon-HE-9.7.0-4_userguide.txt java -cp Saxon-HE-9.7.0-4.jar net.sf.saxon.Transform -t -repeat:1000 -xsl:identity.xsl -s:userguide_MERGED.xml -o:/dev/null --generateByteCode:off Anonymous, 2016-05-13 17:32
saxon-9.1.0.8_userguide.txt (428 KB) saxon-9.1.0.8_userguide.txt java -cp saxon-9.1.0.8.jar net.sf.saxon.Transform -t -repeat:1000 -xsl:identity.xsl -s:userguide_MERGED.xml -o:/dev/null Anonymous, 2016-05-13 17:32

Please register to edit this issue

Also available in: Atom PDF