An ordinary editor reads the whole file into memory and hopes it fits. The memory-maps the original and states plainly which mode it is in and what that mode switches off.
mechanics
Files from 100 MB open through memory-mapping: pages are faulted in on access, so opening costs almost no RAM and requires no full read from disk.
Jumping to a line and the cursor position are instant while the interface never blocks on counting: the index is built in parallel and its status is visible in the status bar.
The buffer is assembled from pieces rather than rewritten: inserting at the start of a several-hundred-megabyte file costs the same as at the end. Undo is snapshot-based.
modes
The mode is chosen by file size and shown in the status bar. This is the key difference from “sudden slowdowns”: behaviour is predictable and the limits are named out loud.
mode 01
Ordinary files, read fully into memory. Everything is available — code folding, breakpoints, line-ending conversion, highlighting from the first byte.
mode 02
Big logs and dumps. Memory-mapped, with line indexing running in the background; up to 64 MiB the file moves into a buffer of its own once that finishes and lets the mapping go. Soft wrap stays on.
mode 03
Gigabyte files. The mapping is held for the whole session, and anything that would have to walk the file end to end is dropped.
data
| ts | shard | op | rows | ms | |
|---|---|---|---|---|---|
| 994,112 | 21:14:02.118 | 07 | flush | 2,048 | 18.4 |
| 994,113 | 21:14:02.140 | 08 | flush | 2,048 | 17.1 |
| 994,114 | 21:14:02.166 | 08 | queue | 8,412 | — |
| 994,115 | 21:14:02.201 | 03 | rebalance | 2,048 | 57.0 |
| 994,116 | 21:14:02.244 | 03 | checksum | 44,907 | 0.4 |
| 994,117 | 21:14:02.288 | 03 | retry | 44,907 | 42.6 |
| 994,118 | 21:14:02.301 | 03 | flush | 2,048 | 19.8 |
| 994,119 | 21:14:02.334 | 04 | flush | 2,048 | 16.9 |
one more thing
So saving is atomic: a crash or a power cut during a write will not leave a torn file. An open file is locked across processes, and if it changed on disk the editor tells you instead of silently overwriting it.