2011-08-20 9 views
2

私はruby 1.8.7を使用しています。すぐに1.9+にアップグレードすることはできません。ルビのスレッドで最適化されたpingは可能ですか?

私は、ルビーは緑色のスレッドを持っていると理解しています.CPUベースのものはマルチスレッドではあまり得られません。

しかし、私はスクリプトでネットワーク上のN台のマシンにpingしようとしているので、ルビーでマルチスレッドのpingを試していました - マシンが新しいスレッドを作成して別のマシンホスト。しかし、私が見ているのは、マルチスレッドが実際にパフォーマンスを悪化させているということです。

ruby​​のスレッドで最適化されたpingを行うための提案はありますか?

+0

どのようにpingが実装されていますか?おそらく、パフォーマンスに影響を与えるグローバルなインタプリタロックがありますか?もしあなたができるなら、JRubyを試してみてください。より良いスレッド実装ができます。 – Casper

+0

@Casper - ここでグローバルインタープリタロックが使用されているかどうかはどのように分かりますか? – Fanatic23

+0

コードを見ずに各パーツを分析し、それらがどのようにやりとりするかを理解することなく、知る方法はありません。だからこそ、実際にどうやってpingをやっているのか、いくつかスニペットを投稿すれば私は不思議に思っています。 – Casper

答えて

1

EventMachineにはICMP implementationを指定してください。 icmp4emの作者はまた、このすべてのものを使う方法を2つの例で示しています。

関連する問題