Project

Profile

Help

Bug #2723

closed

Increased memory use in Saxon 9.6 compared to Saxon 9.3

Added by Stuart Barker about 8 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Performance
Sprint/Milestone:
Start date:
2016-04-22
Due date:
% Done:

100%

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

Description

We have recently upgraded our tool from Saxon 9.3 to Saxon 9.6. Although functionally it is behaving the same we have noticed some increased memory requirements, of the order of 5-10%.

We haven't yet been able to pin down the source precisely but initial profiling does suggest that there are a number of cases where previously we only had a single instance of a class and now have many thousand. In particular, this seems to have affected extension functions and other classes in the package com.saxonica.functions.extfn. We have also observed large increases in the number of instances of DynamicFunctionCallDefinition, DateTimeValue, IsWholeNumber and LocalVariableReference (in each case from 1 or a small handful to many thousand).

Do any of these symptoms indicate any particular cause and is there some way in which we might be using the Saxon API that could trigger it? We do create our own extension of the function library which delegates to the existing one (in order to implement some specific function-handling behaviour), and set it on the static context using XPathCompiler.getUnderlyingStaticContext().setFunctionLibrary(). This API is not guaranteed to be stable between releases so perhaps we should be using a different approach.

We are currently preparing for a release of our product so any initial observations as soon as possible would be appreciated. We're still investigating the underlying problem and will update this issue with any more detailed information.

Stuart Barker

CoreFiling Ltd

Please register to edit this issue

Also available in: Atom PDF