Skip to content

Conversation

clydin
Copy link
Member

@clydin clydin commented Aug 26, 2025

Improves the performance of AST utility functions by reducing redundant work and memory allocations.

  • The findNodes function is now memoized with a WeakMap-based cache. This prevents repeated traversals of the entire source file AST when searching for nodes of the same kind, which is a common pattern.
  • The getSourceNodes function has been refactored to use a single array instead of two, reducing memory overhead and avoiding costly shift() operations.

@clydin clydin added the target: major This PR is targeted for the next major release label Aug 26, 2025
@angular-robot angular-robot bot added area: performance Issues related to performance area: @schematics/angular labels Aug 26, 2025
@clydin clydin added the action: review The PR is still awaiting reviews from at least one requested reviewer label Aug 27, 2025
@clydin clydin requested a review from alan-agius4 August 27, 2025 12:24
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker target: major This PR is targeted for the next major release and removed action: review The PR is still awaiting reviews from at least one requested reviewer target: major This PR is targeted for the next major release labels Aug 28, 2025
Improves the performance of AST utility functions by reducing redundant work and memory allocations.

- The `findNodes` function is now memoized with a `WeakMap`-based cache. This prevents repeated traversals of the entire source file AST when searching for nodes of the same kind, which is a common pattern.
- The `getSourceNodes` function has been refactored to use a single array instead of two, reducing memory overhead and avoiding costly `shift()` operations.
@clydin clydin force-pushed the ng-schematics/ast-perf branch from 4d591ff to 3009ebd Compare August 28, 2025 12:13
@clydin clydin merged commit 14c0a9b into angular:main Aug 28, 2025
31 checks passed
@clydin clydin deleted the ng-schematics/ast-perf branch August 28, 2025 12:45
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: performance Issues related to performance area: @schematics/angular target: major This PR is targeted for the next major release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants