Crane

Performance

Performance, measured

These are results from Crane’s own benchmarks on three setups on two computers, listed below. They time the parts of Crane that do the heavy work — finding lines, searching, editing, coloring — with the text already in memory, so they show Crane’s speed rather than the disk’s. Your results will depend on your computer.

The computers

  • Apple M2

    Processor
    Apple M2, 8 cores (4 performance, 4 efficiency)
    Memory
    16 GB memory
    System
    macOS 27.0.1
    Crane
    Source of October 21, 2026 (7bace340). Optimized build (RelWithDebInfo), Apple Clang 21.0.0.21000334
    Runs
    Median of 30 runs: 5 launches × 6 repetitions
    Measured
    October 21, 2026
  • AMD Ryzen 7 2700 (Linux)

    Processor
    AMD Ryzen 7 2700 Eight-Core Processor, 8 cores, 16 threads
    Memory
    16 GB memory
    System
    Fedora Linux 44 (Workstation Edition), kernel 7.2.11
    Crane
    Source of October 20, 2026 (fafb1b5d). Optimized build (RelWithDebInfo), Clang 22.1.8
    Runs
    Median of 30 runs: 5 launches × 6 repetitions
    Measured
    October 20, 2026
  • AMD Ryzen 7 2700 (Windows)

    Processor
    AMD Ryzen 7 2700 Eight-Core Processor, 8 cores, 16 threads
    Memory
    16 GB memory
    System
    Windows 10 (build 19045)
    Crane
    Source of October 21, 2026 (2e431bba). Optimized build (RelWithDebInfo), Clang 23.1.3, with uncommitted changes
    Runs
    Median of 30 runs: 5 launches × 6 repetitions
    Measured
    October 21, 2026

Each figure is a median: the middle value of every run on that computer. The runs are spread over several separate launches of the benchmark program, each repeating every benchmark in a random order, so a busy moment on the computer can’t land on just one result.

The small range beside a figure, and the whisker at the end of a bar, cover the middle half of the runs. The shorter it is, the less the result moved from one run to the next.

Opening a file

Crane shows a file as soon as it has read the start, and reads the rest in the background.

When a file isn’t in memory yet, it has to come off the disk first, and even a fast SSD reads only a few gigabytes a second. For a large file opened for the first time, the disk is usually what you wait for.

Finding where lines start, on one core. This is the work of opening a file.

Higher is better

Apple M2
4.8 GB/s
AMD Ryzen 7 2700 (Linux)
3.9 GB/smiddle half of runs: 3.8–3.9 GB/s
AMD Ryzen 7 2700 (Windows)
3.7 GB/smiddle half of runs: 3.5–3.7 GB/s

For the first 8 MB, which is what Crane reads before it shows the window.

Lower is better

Apple M2
1.7 msmiddle half of runs: 1.7–1.8 ms
AMD Ryzen 7 2700 (Linux)
2.2 msmiddle half of runs: 2.1–2.2 ms
AMD Ryzen 7 2700 (Windows)
2.3 msmiddle half of runs: 2.2–2.4 ms

Searching

Crane searches with all of the computer’s processor cores at once, starting where you are. Plain words are the fastest to find; patterns that have to look harder at each line are slower.

After 3,000 scattered edits to the same file, the two fastest searches ran at 42.9 GB/s and 34.1 GB/s on the Apple M2, 9.7 GB/s and 9.2 GB/s on the AMD Ryzen 7 2700 (Linux), and 10.1 GB/s and 9.2 GB/s on the AMD Ryzen 7 2700 (Windows).

Higher is better

  • Apple M2
  • AMD Ryzen 7 2700 (Linux)
  • AMD Ryzen 7 2700 (Windows)
  • A rare word or phraseApple M2: 49.1 GB/sAMD Ryzen 7 2700 (Linux): 22.2 GB/sAMD Ryzen 7 2700 (Windows): 23.2 GB/s
  • A simple patternApple M2: 39.4 GB/sAMD Ryzen 7 2700 (Linux): 21.8 GB/sAMD Ryzen 7 2700 (Windows): 22.3 GB/s
  • A word, ignoring caseApple M2: 26.1 GB/sAMD Ryzen 7 2700 (Linux): 20.3 GB/sAMD Ryzen 7 2700 (Windows): 19.1 GB/s
  • A phrase on most linesApple M2: 20.2 GB/sAMD Ryzen 7 2700 (Linux): 19.0 GB/sAMD Ryzen 7 2700 (Windows): 15.3 GB/s
  • Accented text, ignoring caseApple M2: 7.9 GB/sAMD Ryzen 7 2700 (Linux): 9.8 GB/sAMD Ryzen 7 2700 (Windows): 8.8 GB/s
  • A pattern of digitsApple M2: 2.6 GB/sAMD Ryzen 7 2700 (Linux): 6.5 GB/sAMD Ryzen 7 2700 (Windows): 4.5 GB/s
  • A repeated wordApple M2: 840 MB/sAMD Ryzen 7 2700 (Linux): 992 MB/sAMD Ryzen 7 2700 (Windows): 947 MB/s
A 537 MB generated log file, searched using every core the processor has. Hover over or focus a search for the query, the number of matches and the speed on one core.
Show as a table

Higher is better

SearchComputerAll coresOne coreMatches
A rare word or phraseZeta-Quasar-7Apple M249.1 GB/s47.7–50.1 GB/s19.8 GB/s18.1–21.7 GB/s98
AMD Ryzen 7 2700 (Linux)22.2 GB/s21.8–22.4 GB/s15.0 GB/s14.6–15.4 GB/s98
AMD Ryzen 7 2700 (Windows)23.2 GB/s22.6–24.9 GB/s8.5 GB/s8.3–8.8 GB/s98
A simple patternERROR \d+Apple M239.4 GB/s35.3–45.1 GB/s11.6 GB/s9.1–11.9 GB/s5,636
AMD Ryzen 7 2700 (Linux)21.8 GB/s21.4–21.8 GB/s8.0 GB/s7.9–8.2 GB/s5,636
AMD Ryzen 7 2700 (Windows)22.3 GB/s20.3–23.0 GB/s5.0 GB/s4.9–5.1 GB/s5,636
A word, ignoring casetimeoutApple M226.1 GB/s22.9–30.9 GB/s5.9 GB/s5.0–6.0 GB/s28,074
AMD Ryzen 7 2700 (Linux)20.3 GB/s19.1–20.5 GB/s4.1 GB/s4.0–4.2 GB/s28,074
AMD Ryzen 7 2700 (Windows)19.1 GB/s17.9–20.8 GB/s3.5 GB/s3.4–3.6 GB/s28,074
A phrase on most linesstatus=200Apple M220.2 GB/s17.8–24.8 GB/s4.9 GB/s4.5–5.1 GB/s5,046,753
AMD Ryzen 7 2700 (Linux)19.0 GB/s18.2–19.8 GB/s3.6 GB/s3.5–3.8 GB/s5,046,753
AMD Ryzen 7 2700 (Windows)15.3 GB/s14.4–16.3 GB/s2.0 GB/s1.9–2.0 GB/s5,046,769
Accented text, ignoring caseRÉSUMÉApple M27.9 GB/s7.3–9.4 GB/s1.9 GB/s1.7–2.0 GB/s1,933
AMD Ryzen 7 2700 (Linux)9.8 GB/s9.2–10.2 GB/s1.3 GB/s1,933
AMD Ryzen 7 2700 (Windows)8.8 GB/s8.3–9.0 GB/s1.2 GB/s1.1–1.2 GB/s1,933
A pattern of digits\d{3}-\d{4}Apple M22.6 GB/s2.3–2.8 GB/s456 MB/s429–467 MB/s111,690
AMD Ryzen 7 2700 (Linux)6.5 GB/s5.6–6.8 GB/s650 MB/s642–655 MB/s111,690
AMD Ryzen 7 2700 (Windows)4.5 GB/s4.3–4.6 GB/s503 MB/s477–513 MB/s111,690
A repeated word(\w+) \1Apple M2840 MB/s716–980 MB/s210 MB/s204–216 MB/s5,622,547
AMD Ryzen 7 2700 (Linux)992 MB/s896 MB/s – 1.0 GB/s127 MB/s125–128 MB/s5,622,547
AMD Ryzen 7 2700 (Windows)947 MB/s920–974 MB/s113 MB/s111–118 MB/s5,622,567

Editing

Crane keeps your changes apart from the original file instead of rewriting it, so an edit costs about the same however much of the file has already been changed.

These times are for the edit itself; drawing the result on screen comes on top.

To make an edit anywhere in an untouched file.

Lower is better

Apple M2
2.3 µs
AMD Ryzen 7 2700 (Linux)
3.6 µsmiddle half of runs: 3.4–3.8 µs
AMD Ryzen 7 2700 (Windows)
3.2 µsmiddle half of runs: 3.2–3.5 µs

The same, after 32,000 earlier edits.

Lower is better

Apple M2
2.5 µs
AMD Ryzen 7 2700 (Linux)
3.6 µsmiddle half of runs: 3.5–3.7 µs
AMD Ryzen 7 2700 (Windows)
3.6 µsmiddle half of runs: 3.5–3.9 µs

Per character, typing in one place.

Lower is better

Apple M2
15 nsmiddle half of runs: 15–16 ns
AMD Ryzen 7 2700 (Linux)
39 nsmiddle half of runs: 38–39 ns
AMD Ryzen 7 2700 (Windows)
33 nsmiddle half of runs: 31–36 ns

Coloring very large files

Above 8 MB, Crane colors the file a line at a time, so it can start wherever you scroll to. At these rates, a screenful of lines takes well under a millisecond.

Higher is better

  • Apple M2
  • AMD Ryzen 7 2700 (Linux)
  • AMD Ryzen 7 2700 (Windows)
  • LogApple M2: 312 MB/sAMD Ryzen 7 2700 (Linux): 172 MB/sAMD Ryzen 7 2700 (Windows): 182 MB/s
  • SQL dumpApple M2: 229 MB/sAMD Ryzen 7 2700 (Linux): 143 MB/sAMD Ryzen 7 2700 (Windows): 155 MB/s
  • CSVApple M2: 208 MB/sAMD Ryzen 7 2700 (Linux): 133 MB/sAMD Ryzen 7 2700 (Windows): 138 MB/s
  • FASTQApple M2: 145 MB/sAMD Ryzen 7 2700 (Linux): 100 MB/sAMD Ryzen 7 2700 (Windows): 112 MB/s
Coloring generated files line by line, on one core. Hover over or focus a format for lines a second.

Not measured yet

  • The time from opening a file to seeing it on screen, end to end.
  • How long saving takes, for small and large changes.
  • Memory use with very large files open.