-
Notifications
You must be signed in to change notification settings - Fork 304
[BUG] VSCode freezes on file change in large repo #1196
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
Comments
@christianvuerings, this is an interesting use case... The behavior you see in I guess we could explore a "just-in-time" updateTestFileList(), which only executes, if needed, when the next test run is scheduled... |
This change optimizes file system event handling by implementing a just-in-time approach to updating test file lists. Rather than immediately refreshing the test file list on every file system event, we now mark it as dirty and only update it when necessary (before running tests). - Add testFileListDirty flag to track when updates are needed - Only update test file list when running or debugging tests - Force update on initial startup for completeness - Significantly improves performance when renaming files in large repositories fixes jest-community#1196
@connectdotz Were you thinking something along these lines? #1233 |
@christianvuerings, yes indeed. But I am still struggling with a few questions, let's discuss in your PR. Thanks for your quick action!!👍 |
Describe the bug
VSCode freezes when making a file change (create / rename / delete) in a repo with lots of tests.
To Reproduce
Steps to reproduce the behavior:
git clone https://github.com/christianvuerings/vscode-jest-large-repo.git
cd vscode-jest-large-repo; code .
src/main.js
tosrc/main_renamed.js
:mv src/main.js src/main_renamed.js
Expected behavior
VSCode doesn't freeze
Actual behavior
VSCode freezes for 5-10 seconds
Screenshots
If applicable, add screenshots to help explain your problem.
First part: shows freezing issue with 2 separate renames.
Second part: renaming works smoothly without the VSCode Jest extension
vscode-jest-free-file-rename.mp4
Environment:
v6.4.0
node -v
:v18.16.1
npm -v
oryarn --version
:9.5.1
Jest 29.7.0
None
on-demand
None
deferred
totrue
Mac OS 14.6.1
Prerequisite
Yes
Root directory of the project
npm run test
Additional context
Add any other context about the problem here.
When debugging the root cause seems to be
updateTestFileList
:vscode-jest/src/JestExt/core.ts
Lines 744 to 765 in fae16e8
Which gets called on every file create, delete or rename
vscode-jest/src/JestExt/core.ts
Lines 767 to 775 in fae16e8
If we comment out the contents of
updateTestFileList
everything works smoothlyThe text was updated successfully, but these errors were encountered: