--- /dev/null
+man-db: 'man -K'
+
+<p>I recently implemented <code>man -K</code> (full-text search over all
+manual pages) in <a href="http://man-db.nongnu.org/">man-db</a>. This was
+inspired by a similar feature in Federico Lucifredi's
+<a href="http://primates.ximian.com/~flucifredi/man/">man</a> package
+(formerly maintained by Andries Brouwer). I think I did a much better job of
+it, though. The man package just forks grep for every manual page; man-db
+takes advantage of the pipeline library I wrote for it a while back and does
+it entirely in-process (decompression requires a fork but no exec, while the
+man package has to exec gunzip as well).</p>
+
+<p>The upshot is that, with a hot cache, man-db takes around 40 seconds to
+search all manual pages on my laptop; the man package (also with a hot
+cache) takes around five minutes, and interactive performance goes down the
+drain while it's doing it since it's spawning subprocesses like crazy. If I
+limit to a single section, the disparity is closer to 3x than 10x, but it's
+still very noticeable. It's interesting how much good libraries can do to
+help guide efficient approaches to problems.</p>
+
+<p>Of course, a proper full-text search engine would be much better still, but
+that's a project for some other time ...</p>