I'm getting performance warnings when running lints against eo-runtime:
[WARNING] XSL transformation 'rt-without-atoms' took 128ms, whereas threshold is 100ms
[WARNING] XSL transformation 'rt-without-atoms' took 129ms, whereas threshold is 100ms
What happens: The check not(//o[eo:atom(.)]) scans the entire document when no atom is found. eo:atom(.) = exists($o/o[@name=$eo:lambda]) performs a child lookup per element. When the XMIR file has no atoms, every element in the document is visited, making the cost O(n × degree).
What should happen: The transformation completes within the 100ms threshold. An early exit as soon as one atom is found would reduce cost to O(1) in the common case. Alternatively, an xsl:key for lambda-named children would speed up the atom check.
I'm getting performance warnings when running lints against
eo-runtime:What happens: The check
not(//o[eo:atom(.)])scans the entire document when no atom is found.eo:atom(.) = exists($o/o[@name=$eo:lambda])performs a child lookup per element. When the XMIR file has no atoms, every element in the document is visited, making the cost O(n × degree).What should happen: The transformation completes within the 100ms threshold. An early exit as soon as one atom is found would reduce cost to O(1) in the common case. Alternatively, an
xsl:keyfor lambda-named children would speed up the atom check.