[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/30 22:43 / Filesize : 279 KB / Number-of Response : 933
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだらねえ質問はここに書き込め! Part 197



714 名前:login:Penguin mailto:sage [2012/01/22(日) 10:48:10.46 ID:AEQf6cqt]
すみません、unixで子プロセスの同期を高速化する方法について教えて下さい。

現在、unix上で以下のようなプログラムを作成しています。

while タスクが存在する do
 pid = fork()   # 子プロセスを作成
 if pid == nil
  ...子プロセスで処理を実行...
  exit!  # 強制終了
 else
  Process.wait(pid)  # 子プロセスの終了を待つ
 end
end

これはうまく動いているのですが、ベンチマークを走らせても
CPU load が 100% にならず、50% 程度をうろうろします。
たぶんCPUコアを1個しか使えてないんじゃないかと思いますが、
もっとCPUを効率よく使うにはどうしたらいいでしょうか。

あと、Process.wait(pid) を外したら高速になったのですが
そうすると今度はうまく動作しませんでした。
子プロセスに行わせる処理は、親プロセスとは独立しているので、
Process.wait(pid) を外したら動かなくなりそうな原因について
なにか心当たりがあれば教えてください。







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef