JupyterLab Benchmarks Documentation¶
Benchmarking tools for JupyterLab
This project is a place to make JupyerLab faster. For now, we want to optimize for various notebook content:
Opening a new notebook.
Switching tabs. An acceptable time is 300-500 ms switch time.
The following is out-of-scope, but could become later in-scope:
Initial server start.
Initial HTML page loading.
Notebok saveing time.
We iterate in steps:
Build benchmark tooling to have a baseline and be able to compare with fixes.
- Fixes Strategies
- Strip Output
- Block Div
- Virtualized Notebook
- Shadow DOM
- Tune CodeMirror Configuration
- Enhance CodeMirror Code Base
- Content Visibility
- Fast DOM
- Web Workers
- Service Workers
- Use requestAnimationFrame (non concluding)
- Update Editor on Show
- Use pushAll cells insted of push (non concluding)
- React Concurrency
- Reuse contentFactory
- Use scrollbarStyle: ‘null’ in Editor Config
- Transfer Content in Chunks
- Server Memory cache
- Improving Network Performance
- Web Render
- Fixes Implementations