BT

InfoQ ホームページ ニュース RubyのNet::HTTPで何が良くないのか?

RubyのNet::HTTPで何が良くないのか?

ブックマーク

「RubyのNet:HTTPの実装では、何が良くないのか?」と聞くものもいるかもしれない。Adam Nelson氏は、大量のデータを転送するアプリケーションで見たものに驚いた。「実際に起こっていることは、CPUの最大回転数であり、1024バイト のチャンクでデータは転送される」(リンク)。Adam氏は初回の分析(リンク)でそれを発見した。実際の問題は「すべての単一rbuf_fill呼び出しについてタイムアウ トを配置する」ことであると、 Alex Young氏は述べている。「そこでデフォルトで、受信する1000バイトのデータごとに新たなスレッドを作成する必要がある」。

Rubyとライブラリのさまざまな実装を比較すると(リンク)、Ruby 1.8.6は「 もっとも近い競争相手(Ruby 1.8.7)より2倍もの多くのCPU」を使用することが分かり、Ruby 1.8.7はより大きなバッファー(16K)を使用する。興味深いことに、Ruby 1.9.0は最小のCPU使用率であり、readpartial(リンク)を使用する実装つきで、「ソケットの読み出しのタイムアウトがなく」、「それぞれの読み出 しには事前に割り当てられたストリングがある」。Zed Shaw氏によるMongrelコアに基づいた純粋なRuby実装であるRFuzz(リンク)が、すぐ後ろにある。

この問題は新しくはない。2006年のRuby会議のメーリングリストのスレッド(リンク)でその問題や次善策について議論している。

また、これはオープンソースの実装がいかに便利で、価値があるかを示す好個の模範である。

 

原文はこちらです:http://www.infoq.com/news/2008/11/ruby-http-problems

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。