JupyterLab Benchmarks Documentation
Contents
JupyterLab Benchmarks Documentation#
Benchmarking tools for JupyterLab
This project is a place to make JupyterLab 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.
Closing a notebook
The following is out-of-scope, but could become later in-scope:
Initial server start.
Initial HTML page loading.
Notebok saveing time.
Build time.
We iterate in steps:
Identify the types of issue and measure what is going on with e.g. experiments and profiling. We also understand the notebook lifecycle
Build benchmark tooling to have a baseline and be able to compare with fixes.
Define fix strategies and implement those fixes.
Site Contents#
Issues
Measures
Benchmarks
Memory Leaks
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
Links