Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Performance

The editor is designed to show a first frame quickly while large files finish loading in the background. The figures below are medians from Performance Benchmark v1 for release 0.6.0.

Recorded Results

ScenarioFirst paintFile readPeak private memoryKey to frame
Empty file25.0 ms—5.2 MiB—
Python, 8 MiB24.5 ms9.0 ms393.3 MiB—
Log file, 256 MiB27.5 ms93.1 ms267.2 MiB—
Single-line text, 64 MiB25.6 ms26.6 ms72.2 MiB—
Show Command Palette———0.44 ms
Show favorites———0.36 ms

The machine was an AMD Ryzen 9 9950X with 94 GiB RAM, Windows 11 Pro for Workstations, and a 2560 × 1600 display at 59 Hz. The release build used a warm file cache. These values are specific to that setup and benchmark version.

First paint is the time from process start until the first frame is drawn to the back buffer. It is not the later DWM-composed display time. File read measures completion of background loading. Key to frame measures the time from a handled key to the frame being drawn. The palette result uses 30 repetitions after one warm-up; its p95 was 0.78 ms.

Reproduce

Run the short report from the repository root:

cargo xtask bench-perf --short

The complete procedure, fixtures, and recorded results are in Performance.md. The harness also provides cargo xtask bench-startup for the startup gate. Crate-specific benchmarks are available with cargo bench -p rte_text, cargo bench -p rte_edit, and cargo bench -p rte_render.

Code fixtures are highlighted. L09 also reports the time until the whole 8 MiB Python file is highlighted (--exit-after-highlight, 799 ms); its peak memory includes the syntax trees of the whole file. The scroll tests report the time from a jump to its first highlighted frame.