httpd

tcp/ipで通信するプログラムをちょっと書いてみた。リクエストを無視して同じhtmlを返すhttpd。いや、まあ、httpdとは言わないと思うけど。
それでab -n 1000 http://localhost:12345/という具合でベンチを取ってみた。

httpd Request per second
自作 2392.89
Apache 528.82

結果、四倍強の速度が出た。
この自作はhttpdで出し得る速度のほぼ限界と言って良いだろう。もっと高機能なhttpdでも全データをメモリに置くことで静的ページならこれに近い速度を出すことが出来るのではないか。むしろ起動時にパス上の全ドキュメントを読み込むという仕様ならば、ドキュメントの変更があるたびに再起動だが、キャッシュについて悩まずに済む。
ただし、パスの正規化については書いたことがないのでどれくらい時間がかかるか判らない。モジュール的な機能を追加する機構は速度の邪魔になる。そのため調整は全てコンパイル時に行う必要があるかもしれない。
非常に制限の多いhttpdになるが用途によっては有効かもしれない。それでもハードウェアhttpdには勝てないと思うが。