Closed
Description
We have been seeing reports about the notebook performance for quite a while and recently since we rolled out them to all Jupyter users, we started to receive issues with reproduce steps to help us figure out what's going on. Notebook can be "slow" in multiple different ways and here is a summary of the issues we have good understanding of:
- File opening
- Stop activating all extensions onNotebook synchronously, only the serializer Notebook initial loading improvement #129932
- Serializer perf improvement Avoid unnecessary string join and split #129370
- Scrolling
- Mouse scrolling sensitivity Mouse Wheel Scroll Sensitivity invalid in built-in jupyter #117803
- Update layer tree Notebook slow scrolling caused by update layer tree #126880
- Complex output SVG Plot viewer perf fix vscode-jupyter#6913
- Output stealing scrolling (e.g. map)
- Execution
- No await for output append https://github.com/microsoft/vscode/issues/127843, Execution of Notebooks are very slow compared to Classic Jupyter vscode-jupyter#5662
- Use VSBuffer as data store, or use
string
as data store forOutputItem.text()
- Do not generate svg for images always on execution (memory leak) SVG Plot viewer perf fix vscode-jupyter#6913, Large overhead compared to browser Jupyter when running cells in Interactive vscode-jupyter#6901
- Jedi language server interferes with execution : Autocomplete hangs the kernel for interactive window vscode-jupyter#1300
- File opened --> first execution
- Avoid scanning all kernel specs when active interpreter is known Creating interactive window scans for all kernel specs vscode-jupyter#6672