Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize runtime complexity of linter when passing in multiple snippets #725

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

netomi
Copy link

@netomi netomi commented Aug 13, 2023

This fixes #557 .

Instead of calculation all root at the start we delay that when evaluating each individual snippet.
The roots data structure is populated with all nodes of all imported jsonnet snippets, so we utilize that also in the importFunc where we try to resolve imports from the list of roots to avoid doing duplicate imports.

However this is a best effort only, as the mechanism is not smart, but is just able to resolve imports in the same path. This could be further improved, but for the test cases that is already sufficient, as all of them are in the same directory.

With this fix, the multiple tests run in around 0.23s compared to 9s before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Running linter on multiple files at once suspiciously slow
1 participant