select でも性能低下を招かないように修正した stone のベンチマーク結果。
req/sec | ms/req | KB/sec | |
---|---|---|---|
select | 681.83 | 1.467 | 191.59 |
epoll | 692.74 | 1.444 | 194.66 |
apache | 983.60 | 1.017 | 278.36 |
select 版と epoll 版で、ほぼ同等の速度。もちろん、listen するポート数が多くなれば差が出てくる可能性はある。
測定条件:
$Id: stone.c,v 2.2.2.15 2006/04/02 00:03:56 hiroaki_sengoku Exp $ senri% stone -rn localhost:80 2345 >& /dev/null asao% ab -n 1000 -c 10 http://senri:2345/health This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.4 $> apache-2.0 Document Path: /health Document Length: 131 bytes Concurrency Level: 10
- req/sec
- Requests per second [#/sec] (mean)
- ms/req
- Time per request [ms] (mean, across all concurrent requests)
- KB/sec
- Transfer rate [Kbytes/sec] received