Skip to content

[perf] Avoid nested traversals in ContextNodeVisitor by tracking loop/try/attribute depth - #8741

Merged
samsonasik merged 1 commit into
mainfrom
context-traver
Oct 20, 2026
Merged

samsonasik merged 1 commit into
mainfrom
context-traver

Conversation

@samsonasik

@samsonasik samsonasik commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

ContextNodeVisitor runs inside the main decorating traversal, but it started a second traversal over the same nodes. This PR reduce them.

Benchmark tested on bench/context_node_visitor_bench.php

main PR Change
CPU per traverse 37.871 ms 19.233 ms -49.2%

@samsonasik

Copy link
Copy Markdown
Member Author

All green 🎉 @TomasVotruba I am merging it ;)

@samsonasik
samsonasik merged commit e1d1818 into main Oct 20, 2026
49 checks passed
@samsonasik
samsonasik deleted the context-traver branch October 20, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant