Project

Profile

Help

Bug #1795

closed

Increased memory requirements of tree model in Saxon 9.4 compared to Saxon 9.3

Added by Stuart Barker over 11 years ago. Updated over 11 years ago.

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

100%

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

Description

Our domain (XBRL) requires reasonable performance with potentially large models and some of our testing uncovered significant additional memory demands of Saxon 9.4 onwards over Saxon 9.3. In particular, for an instance document of raw size 36Mb the additional memory consumed by the TinyTree was over 100Mb (from c40Mb to c150Mb) representing a significant increase in total memory use for our application.

I attach an extract from a heap snapshot comparison which shows that it is the introduction of NamespaceBindings (and their associated Strings) into the TinyTree that is creating the additional memory demand (my understanding is that, prior to 9.4, an int array referencing into a name pool was used). This comparison was generated using the Java 7 JRE, but the results are comparable using Java 6 JRE.

The instance document being processed was relatively flat but large, with several 100,000s of elements and about 100 namespace prefix declarations in the root element. Nevertheless, the very large number of NamespaceBinding objects suggests many of them are presumably equivalent.


Files

saxon93vs95_heapExtract.html (8.77 KB) saxon93vs95_heapExtract.html Stuart Barker, 2013-06-07 16:24

Please register to edit this issue

Also available in: Atom PDF