Project

Profile

Help

Support #3630

closed

Saxon performance without xsl:stream

Added by bb king over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
2018-01-17
Due date:
% Done:

0%

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

Description

I want to upgrade from xerces to saxon HE 9.5.1 and I would like to know how much performance improvement I should expect for my xslt scripts regarding the parsing of large xml files. Or do I need to use xmsl:stream? It is unfortunatly not available in the HE version?

Thanks

Actions #1

Updated by Michael Kay over 6 years ago

The XSLT 3.0 xsl:stream instruction was replaced by xsl:source-document streamable="yes" in the final XSLT 3.0 specification.

Yes, streaming is not available in Saxon-HE.

Streaming of large documents gives a huge benefit in terms of memory usage, but it doesn't give any significant speed benefits, except in the case where shortage of memory is making things slow. Very often the performance of a transformation is dominated by XML parsing, and of course the parsing works exactly the same way whether the transformation is streamed or not.

Your mileage may vary! The only way to find out how performance varies for a particular workload is to make measurements with that workload.

Please note that the current Saxon release is 9.8; version 9.5 is quite old now, and support for streaming has moved on quite a bit in the later releases.

You may find that Saxon gives a substantial performance boost over Xalan for large documents even without streaming.

Actions #2

Updated by bb king over 6 years ago

HI Michael,

thanks a lot.

This means that I do not need to use the xsl:stream function with large xml files as long as I have enough RAM (8 GB for example) for the jboss fuse 6.3 server? correct? My files can grow up to 500 MB.

I see also that xslt 3.0 support is missing on saxon 9.5 HE? correct? this means that I would not be able to upgrade from xslt 1.0 to xslt 3.0?

Any recommandation?

thanks

Actions #3

Updated by Michael Kay over 6 years ago

  1. Yes. 500Mb is getting close to the limits for a non-streamed transformation, but it's feasible in principle.

  2. I'm not sure why you want to use Saxon 9.5. It's quite an old release. You definitely want 9.8, even without the XSLT 3.0 support.

Actions #4

Updated by bb king over 6 years ago

Hi Michael,

it is due to jboss fuse 6.3 which comes with a packaged saxon 9.5.1 release. Do you think that I could replace that jar with a saxon 9.8 release and try?

Thanks

Actions #5

Updated by Michael Kay over 6 years ago

That's a question for the JBoss support community, I'm afraid. It all depends whether they have stuck to stable APIs or whether they dive in more deeply.

Actions #6

Updated by Michael Kay over 6 years ago

  • Status changed from New to Closed
  • Assignee set to Michael Kay

Marking this thread as closed; feel free to reopen it if necessary.

Please register to edit this issue

Also available in: Atom PDF