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

testing: improve performance of large test discovery #22414

Closed
wants to merge 2 commits into from

Conversation

connor4312
Copy link
Member

Avoids expensive string conversions and (to a lesser degree) buffer concatenations. Reduces time in the extension host in the lsprotocol repo from 17s -> 950ms for me.

Original profile:
vscode-profile-2023-11-02-16-35-20.cpuprofile

Profile with these changes:
vscode-profile-2023-11-02-17-27-45.cpuprofile

Avoids expensive string conversions and (to a lesser degree) buffer
concatenations. Reduces time in the extension host in the lsprotocol
repo from 17s -> 950ms for me.

Original profile:

Profile with these changes:
@connor4312 connor4312 force-pushed the connor4312/improve-test-discovery-perf branch from ed60acf to 5a24096 Compare November 3, 2023 01:43
@connor4312 connor4312 added the debt Covers everything internal: CI, testing, refactoring of the codebase, etc. label Nov 3, 2023
@karthiknadig
Copy link
Member

@connor4312 we are working on replacing this with vscode-jsonrpc as it provides the API to do IPC, and get rid of this custom JSON-RPC implementation we have. One thing to check is that same issue does not exist in vscode-jsonrpc.

@connor4312
Copy link
Member Author

It looks good at first glance, and it avoids both the pitfalls I fixed in this PR. I'll validate when it lands 🙂

@karthiknadig
Copy link
Member

We are working on moving the communication to use vscode-jsonrpc. Closing this in favor of that change #22177

@karthiknadig karthiknadig deleted the connor4312/improve-test-discovery-perf branch June 13, 2024 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
debt Covers everything internal: CI, testing, refactoring of the codebase, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants