This repository was archived by the owner on Mar 13, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
This repository was archived by the owner on Mar 13, 2020. It is now read-only.
Benchmarks #1
Copy link
Copy link
Open
Description
To get a better understanding the overall performance of opening/loading a notebook with different implementations, we will do some benchmark with different types of Notebook files, the matrix is
- Platform
- Python Notebook
- Azure Data Studio
- Notebook
- Regular size sample
- 10 code cells and 20 markdown cells
- Medium size sample with duplications
- 80 code cells and 200 markdown cells
- Large file
- 545 code cells and 1292 markdown cells
- Regular size sample
There are a couple of factors that affect the overall performance. To make sure we get the right numbers, we need to track the benchmarks in following aspects
- Overall loading time, from user clicking the file to a fully usable state
- Initialization time, from user clicking to first paint.
- View/Editor loading time, from first pain to a fully usable state.
Results
All tests are run multiple times to get fair results. Benchmark profiles are measured by Chrome Dev Tools Performance tool. Before each benchmark, garbage is always collected. For more details of each benchmark's water flow, please read the comments below.
Platform | File Size | Initialization | Cells Rendering | Total |
---|---|---|---|---|
Python | Regular | 3.88s | 1.84s | 5.75s |
Medium | 4s | 6.28s | 11s | |
Large | 4.1s | 74s | 80s | |
ADS | Regular | 250ms | 443ms | 0.8s |
Medium | 210ms | 5s | 6.43s | |
Large | 600ms | 108s | 120s |
Interesting findings:
- Python notebooks always take 3-4 seconds to initialize the webview while ADS opens file almost instantly
- Once the initiation finishes, the rendering time is similar. This is as expected because most of the time is spent in rendering Monaco Editor and markdown content
- For the large file, Python's impl opens the file more stably while ADS often freezes and takes longer to open the file. Once opened, I can scroll with noticeable latency in both but the Python one is more usable.
- The reason behind this might be that Python's notebooks is running in a webview which runs in its own process.
- No virtualization in both solutions.
- Memory usage are similar.
Metadata
Metadata
Assignees
Labels
No labels