-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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
Explore running notebook extension in dedicated extension host #140374
Comments
After analyzing performance issues reported in Jupyter repo https://github.com/microsoft/vscode-jupyter/issues?page=2&q=is%3Aissue+label%3Aperf, we found there are multiple factors to the cell execution performance:
One of our hypothesis is running notebook extension in a separate extension host can help with the first one. Even though we didn't get concrete bug reports for it yet but we can easily write mock test suites to reproduce (say a mock extension constantly block the event loop). While we continue to investigate what is the major factor to the perf issue, we can also start to brainstorm what we might need to tackle to enable running notebook extension in separate extension host, here are some rough ideas:
|
We brainstormed how we can mitigate the starving extension host issue last week and great ideas came out of the discussions, including but not limited to:
|
Some updates from explorations we did this month: Firstly, the starving extension host problem can be easily reproduced with a misbehaving extension blocking the event loop
for x in range(10000):
print(x)
This actually won't work as threads on node still run on the same event loop, meaning if the event loop is blocked, we won't be able to handle other inputs. Running notebook extensions in separate extension host can solve this problem (experiment code tracked in https://github.com/microsoft/vscode/tree/rebornix/notebook-process) but it has open questions about extension dependencies. |
We have been receiving reports of slow performance of cell execution in Jupyter extension. The underlining problem is similar to what Vim users are sometimes running into: the extension host runs all extensions and any heavy computation can slow down or block the event loop, and at the end slow down the Vim extension. Cell execution in VS Code workflow is
Step 4 and 5 are heavily affected by other extensions running in the same extension host thus we want to explore if we can run notebook extensions in its own dedicated extension host.
The text was updated successfully, but these errors were encountered: