Technical Guide

Technical Guide

3.7x Behind ripgrep, 1.9x Behind klogg — Part 13 (Final): 50 GB Search 205 s to 51.70 s, Open 100.6 s to 50.44 s

Six percent. Still behind. The first search through a 50 GB log takes ripgrep 54.9–55.8 s and takes us 59.0 s.…
Technical Guide

We Counted Newlines 1.88x Faster and the Clock Did Not Move — Part 11: 3.27 GB/s in RAM, 968 MB/s From the SSD Either Way

[Update 2026-10-04] Follow-up: on the second (hot) run, newline counting did show up on the clock This post's…
Technical Guide

Our Windows “Cold” Runs Were a Lie — Part 12: One Harness on Mac, Windows and Linux, Zero Mismatches Against ripgrep and sed

Nothing reads 10 GB in 2.65 seconds. That was the number recorded for a "cold" read of a 10 GB file on Windows…
Technical Guide

mmap Cost Us Half the Disk — Part 10: 1.9x Behind klogg Until We Split Display (mmap) From Full Reads (pread)

We were getting 57% of the disk. An external USB SSD gives 927 MB/s under dd. Read the same 50 GB file from th…
Technical Guide

Only the 3 GB File Lost to ripgrep — Part 7: The Bottleneck Was Startup Overhead, Not I/O (7 hot Runs: 11.46 s to 7.95 s)

The small file was the one losing. At 50 GB we were level with ripgrep. At 3 GB we were 1.48× slower. The smal…
Technical Guide

We Couldn’t Search a gzip at All — Part 8: The OS zlib and an 8-Byte CRC Took 50 GB From 35.65 s to 17.20 s, Level With ripgrep

Decompression turned out to be the fast part. That was the surprise in this one. We assumed inflate would be t…
Technical Guide

We Set the Bar Before Measuring — Part 9: Dropping It From 2x to 1.5x Flipped Six of Our Own ripgrep Verdicts

1.28× is not a win. When your own tool comes out 1.28× ahead of the competition, do you get to write "faster"?…
Technical Guide

Our -E Nearly Doubled the Time; ripgrep’s Didn’t — Part 4: Extracting Required Literals Took 50 GB -E From 13.68 s to 7.75 s

Only the regex path was slow. Same 50 GB file, same tool, same disk. The only difference is whether -E is on t…
Technical Guide

Our CLI Gave Three Different Counts Where ripgrep Gave One — Part 5: No Default Cap, and grep’s Exit Codes for “Incomplete”

The count changed every time. Same file, same command, same machine. Three runs in a row: 356,940 hits, then 3…
Technical Guide

We Threw the CLI’s Results Away and Read 50 GB Twice — Part 6: One Temp File Cut End-to-End to 50.76 s (klogg: 108.14 s)

We were throwing the results away. Search a 50 GB file from the command line, then open the hits in the GUI. C…