Benchmarks
Every number below was recorded by Caxton's own in-app benchmark harness against generated corpus files, on a Release build. Counts are verified exactly — the find rows assert the precise match count, and the Replace All row re-finds all of its replacements afterward.
Environment
- MacBook Pro, Apple M1 Max, 64 GB RAM, internal SSD
- macOS 15.7, warm file cache, Release build
- Corpus: generated log/CSV/JSONL files from 10 KB to 10 GB — realistic server-log lines, 50-column CSVs, single-line minified bundles, mixed-script UTF-8
Results
| Operation | File | Result |
|---|---|---|
| Open — usable (scroll, search, edit) | 10 GB log · 80,610,954 lines | immediate |
| Full background line index | 10 GB log | 19.5 s |
| Find, literal (1,613,344 matches) | 10 GB log | 1.3 s |
| Find, case-insensitive | 10 GB log | 2.1 s |
| Find, whole word | 10 GB log | 1.3 s |
| Regex alternation (5,643,688 matches) | 10 GB log | 2.1 s |
| Replace All — 1,613,344 replacements, one undo step | 10 GB log | 1.7 s |
| Filter to matching lines (1.61M of 80.6M) | 10 GB log | 1.3 s |
| Filter, two-condition AND | 10 GB log | 2.4 s |
| Filter, two-condition OR (5.6M lines) | 10 GB log | 2.1 s |
| CSV parse to working grid | 1 GB · 2,022,947 rows × 50 cols | 2.6 s |
| CSV sort by numeric column | 1 GB · 2M rows | 8.2 s |
| Save after scattered edits (atomic rewrite) | 10 GB log | 11.3 s |
| Single keystroke apply latency | 10 GB document | ≈ 1 ms |
| One keystroke across 1,000 cursors | 10 GB document | < 120 ms |
| Undo a 1,000-cursor edit | 10 GB document | < 130 ms |
| Find in a one-line file | 500 MB minified JS · 1 line | 0.5 s |
| Bookmark 5,000 lines + persist + re-anchor | 500 MB · 5M lines | 0.2 s |
Methodology notes
- The harness runs inside the real app — real document model, real UI, real renderer — driven by environment variables, with results streamed as JSON.
- Correctness is asserted alongside speed: filter results are cross-checked against find results line-for-line, negated filters must complement exactly, and undo must restore byte-identical content (verified by re-searching).
- "Immediate" open means the window is interactive before indexing completes; indexing streams in the background and the status bar reports progress.
- Numbers vary with hardware and file content. These are honest medians on the stated machine, not best-of-N cherry-picks.