Skip to content
NomiPad

Benchmarks

How fast is NomiPad on a 1 GB file?

NomiPad opens a 1 GiB log (8.8 million lines) to its first screen in about 1 ms (0.23 ms median, 0.82 ms worst of 5 runs), indexes every line in the background in about 2 seconds while you already scroll and edit, jumps to a line 90% into the file in about 30 ms before indexing gets there, and searches the whole file for plain text at up to 11.8 GiB/s (2.7 GiB/s for a case-insensitive whole-word regex). Measured in September 2026 on an Apple M5, macOS 26.5, release build, file already in the OS page cache; a file that isn’t cached yet is limited by the speed of your disk.

By the NomiPad team · Updated

Results

One full run of NomiPad’s automated performance suite, re-measured on September 23, 2026. Where runs varied, the range is given.

NomiPad performance results on a 1 GiB log
WhatMeasuredNote
Open a 1 GiB log to its first screen0.82 ms worst of 5 (0.23 ms median)Target: under 1 s
Memory added by opening the file0.02 MiBThe file is mapped, not copied
Index every line in the background1.9 s (2.0–3.2 s over 5 runs)You can scroll and edit meanwhile
Memory used by the finished index66.9 MiB for 8,776,145 linesOne offset per line
First jump to 90% of the file, before indexing gets there31 ms (26–32 ms over 4 runs)
Every later jump before indexing is done (p99)0.27 ms
Fetch 500 lines deep in the file (p99)0.21 msWhat scrolling asks for
Plain-text search through the whole file12,082 MiB/s (11.8 GiB/s)
Regex, case-insensitive, whole-word search2,706 MiB/s
Search a UTF-16 LE file (64 MiB)569–1,610 MiB/s
Open a 280 MiB log (windowed)7.1 ms worst of 5 (0.22 ms median)
Open a 60 MiB log (loaded whole, every feature on)111 ms worst of 5 (97 ms median)
Open a 40,000-line code file4.8 ms worst of 5 (3.5 ms median)

Setup

  • Machine: Apple M5, macOS 26.5.2, local SSD.
  • Build: the release build NomiPad ships (optimized, link-time optimization on).
  • File: a generated 1 GiB log with 8,776,145 lines, plus 280 MiB, 60 MiB and 40,000-line fixtures.
  • Cache: warm. The files were already in the operating system’s page cache. A file that isn’t cached yet is limited by your disk: opening still reads only the first few kilobytes, but the first full pass (indexing, search) takes about as long as reading the file once.
  • Runs: worst of 5 for opens; the machine was shared with other build jobs, so single numbers wobble.

What exactly is timed

Open and jump times cover NomiPad’s Rust file engine up to the moment the data for the first screen is ready. Drawing that screen in the window is not included. Files above 64 MiB open in Plain mode: the editor holds a sliding window of lines fetched from the engine instead of the whole text, which is why the 1 GiB open is faster than the 60 MiB one, which loads whole with every feature on.

What we haven’t measured, or don’t pass yet

  • Typing latency: the median key press paints within one frame, but the slowest 1% take about 20 ms from key press to paint, over our 16 ms target. We don’t claim sub-16 ms typing.
  • Scrolling at 60 fps: measured in Chrome with the real editor (no dropped frames in 1,800), not yet in the app’s own WebView on macOS.
  • Idle memory of the whole app: not measured yet.
  • Other editors: we haven’t benchmarked them. The comparison cites their own documentation and issue trackers instead.

How the numbers are kept honest

The suite lives in NomiPad’s own code and runs as ordinary tests: it generates the fixtures, times each step and fails if a number goes over its budget, so a slowdown can’t ship unnoticed. When numbers here change, this page and the figures on the home page are updated together.