epoll tueeeeeeeeeee!
http://d.hatena.ne.jp/sakusan_net/20071207/1197038274
↑ここらへんの時期から暇を見て作り直しをぽちぽちとやっていたサーバーですが、
作り直しが完了したのでテストプログラムをさくっと書いて速度実験をしてみました。
・・・epollつよすぎです。
以下はCで書いたダミークライアントで300人ログインの応答実験です
処理は
接続確立>ログイン手続き> {テストプロトコルパース>応答} 繰り返し
です
現行サーバー
スレッドでのユーザー管理
(secの値がおかしいのは接続が失敗したクライアントチャンネルです)
ping -> 1.295256 sec ch:107 ping -> 1199568098.386155 sec ch:202 ping -> 1.795166 sec ch:25 ping -> 0.875219 sec ch:141 ping -> 1.164541 sec ch:219 ping -> 1.960306 sec ch:223 ping -> 1.348539 sec ch:206 ping -> 0.022590 sec ch:257 ping -> 1.272099 sec ch:208 ping -> 1199568098.282123 sec ch:249 ping -> 1.332314 sec ch:238 ping -> 0.289116 sec ch:34 ping -> 2.188497 sec ch:188 ping -> 1.588562 sec ch:252 ping -> 0.215154 sec ch:85 ping -> 0.295905 sec ch:99 ping -> 1199568097.854617 sec ch:203 ping -> 0.984342 sec ch:232 ping -> 0.230011 sec ch:126 ping -> 0.330043 sec ch:47 ping -> 1199568099.150324 sec ch:199 ping -> 0.290976 sec ch:75 ping -> 0.351612 sec ch:162 ping -> 2.608481 sec ch:196
新しいサーバー
epollによるselect型処理
ping -> 0.003724 sec ch:42 ping -> 0.003852 sec ch:281 ping -> 0.003846 sec ch:149 ping -> 0.003857 sec ch:25 ping -> 0.003878 sec ch:1 ping -> 0.003495 sec ch:230 ping -> 0.003678 sec ch:172 ping -> 0.003773 sec ch:74 ping -> 0.003884 sec ch:144 ping -> 0.003771 sec ch:61 ping -> 0.003838 sec ch:94 ping -> 0.003863 sec ch:120 ping -> 0.003747 sec ch:216 ping -> 0.003866 sec ch:148 ping -> 0.003740 sec ch:203 ping -> 0.003816 sec ch:125 ping -> 0.003855 sec ch:132 ping -> 0.003698 sec ch:32 ping -> 0.003479 sec ch:8 ping -> 0.003727 sec ch:205 ping -> 0.003826 sec ch:128 ping -> 0.003484 sec ch:186 ping -> 0.003755 sec ch:150 ping -> 0.003846 sec ch:299
ちょ・・・なんですかこの安定した応答速度は・・・・
苦労した甲斐ありまくりじゃないっすか!
いや〜よかったよかった