>>77 WEBrick/1.3.1はrubyで出来ているので、WEBrickを使わずにrubyでダミーのwebサーバー組んでテストしてみました。
やっていることは、リクエストのヘッダーを読むけど中身無視して、ファイルも読まずに出力フィルをソースに手書き。
で、同様に極端に遅かったので色々やってみた。
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=trap%3A%3Atimeout に
win版は「$stdin.gets」がThreadの切り替えが出来ないと書いてあったので、「$stdin」に関わるところだけかと思っていたら、これが原因のよう。
sysreadに変えたら
>Concurrency Level: 10
>Time taken for tests: 12.781250 seconds
>Complete requests: 10000
>Failed requests: 0
>Write errors: 0
>Total transferred: 15400000 bytes
>HTML transferred: 14540000 bytes
>Requests per second: 782.40 [#/sec] (mean)
>Time per request: 12.781 [ms] (mean)
>Time per request: 1.278 [ms] (mean, across all concurrent requests)
>Transfer rate: 1176.65 [Kbytes/sec] received
と、まずまずの速度が出た。
WEBrickについては知らん。きっと同じ原因だと思うが....