- 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) を外したら動かなくなりそうな原因について なにか心当たりがあれば教えてください。
|

|