Skip to content

rt-without-atoms XSL transformation performance issue with large XMIR files #992

Description

@volodya-lombrozo

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.

Metadata

Metadata

Labels

bugSomething isn't workinggood-titleThe title was checked and improved by ChatGPT

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions