Performance Marklogic xslt

I have an XSLT that I execute using a function xdmp:invoke(), and I am in a very long processing time to see any result (in some cases, the timeout is complete after reaching the maximum time of 3600). This XSLT runs in about 5 seconds in the oxygen editor. Some areas that I think may affect performance:

  • XSLT creates several output files using xsl:result-document. The MarkLogic XSLT processor outputs them as XML endpoints because it cannot physically store these documents on the file system.
  • XSLT creates variables that contain xml nodes, which are then processed by other template calls. Sometimes these variables can contain a large set of XML nodes.

I did some profiling on XSLT, and it seems that creating variables seems to be the most time-consuming part of the execution. I wonder why this case and why it works much faster on a saxon processor?

Any insight is greatly appreciated.

+4
source share
3 answers

I understand that there are some XSLT performance optimizations that are difficult or impossible to implement in the database context compared to the file system. In addition, Saxon is an industry leader in XSLT and is significantly faster than almost everything on the market, although this probably does not explain the big discrepancy that you describe.

, MarkLogic , 8.0 XSLT. , , 3-4 , XSLT.

, XSLT MarkLogic Windows. Linux OSX . , XSLT .

, , xdmp:save.

XSLT , XSLT- XQuery. , XSLT. , XSLT.

, - XSLT, , XSLT XSLT xdmp:xslt-invoke XQuery. , , xdmp:xslt-invoke, , .

+2

ML 7. , , , , , . , xslt , xquery. , xslt xquery. 1-1,5 . :)

0

, , fn:not() . , - , .

0

Source: https://habr.com/ru/post/1614509/


All Articles