~蛙が跳ぶ程度の更新速度~
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
同時入力に対応する。
主に多重化という動作らしいが、厳密な部分は理解していない。
通信による割り込みがおこるソケット系の動作の特性を使ってサーバーの動作を一時的にウェイトするように設定する。
これを実現する上でソケットによるブロッキングを避けるためにノンブロッキングにするのだが、これがまたややこしく、チェック回数がソースをみるだけでも2回以上になっている。
少しでも回数を減らすためにサーバーを一時的に止めるようだ。
ついでにFD増えるって言うね。
セレクト関数などを上手く使えばブロッキング時間ほぼなしで動作可能らしいが。。。難しそうだな。
とりあえず、現状だと同時入力に対して固まるか文字列がつながるかの2択なのでいかんともしがたい。
より効率的なアルゴリズムをくみたいが。。。仕様から勉強しないといけないだろうなぁ。。。
書き込みと読み込みのFDが分けられるということは入室時と入ってからのFDを別物、つまり、前者は構造体で後者は文字列にできないだろうか。
ゲームにしても文字列で送ったほうが軽いだろうが、管理は構造体がらくだ。
個人設定をさせておいて、その情報を構造体でいちいち送っていたのでは効率が悪い。最初にデータをサーバーに保存させてみてはどうか。
しかしサーバーの負荷を軽くするアルゴリズムも必要だ。
今のシステムでは正直時間がかかりすぎている。
一回のコマンドに平均160マイクロ秒。
文字列だけだと0.2マイクロ秒だったのでこれは明らかにgtkとの相性もあるが、その処理時間にまで待ち状態を残してしまっているということだ。これは問題である。
つまり、こういうことだ。一人のGUIがウェイトになればサーバーが解放されずに占有状態に入ってフリーズする。これはかなりまずい。
むつかしいね。
でもネットワークおもしろいよネットワーク。
主に多重化という動作らしいが、厳密な部分は理解していない。
通信による割り込みがおこるソケット系の動作の特性を使ってサーバーの動作を一時的にウェイトするように設定する。
これを実現する上でソケットによるブロッキングを避けるためにノンブロッキングにするのだが、これがまたややこしく、チェック回数がソースをみるだけでも2回以上になっている。
少しでも回数を減らすためにサーバーを一時的に止めるようだ。
ついでにFD増えるって言うね。
セレクト関数などを上手く使えばブロッキング時間ほぼなしで動作可能らしいが。。。難しそうだな。
とりあえず、現状だと同時入力に対して固まるか文字列がつながるかの2択なのでいかんともしがたい。
より効率的なアルゴリズムをくみたいが。。。仕様から勉強しないといけないだろうなぁ。。。
書き込みと読み込みのFDが分けられるということは入室時と入ってからのFDを別物、つまり、前者は構造体で後者は文字列にできないだろうか。
ゲームにしても文字列で送ったほうが軽いだろうが、管理は構造体がらくだ。
個人設定をさせておいて、その情報を構造体でいちいち送っていたのでは効率が悪い。最初にデータをサーバーに保存させてみてはどうか。
しかしサーバーの負荷を軽くするアルゴリズムも必要だ。
今のシステムでは正直時間がかかりすぎている。
一回のコマンドに平均160マイクロ秒。
文字列だけだと0.2マイクロ秒だったのでこれは明らかにgtkとの相性もあるが、その処理時間にまで待ち状態を残してしまっているということだ。これは問題である。
つまり、こういうことだ。一人のGUIがウェイトになればサーバーが解放されずに占有状態に入ってフリーズする。これはかなりまずい。
むつかしいね。
でもネットワークおもしろいよネットワーク。
PR
この記事にコメントする