BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Fibersの総まとめ:NeverBlockがRailsコンパチブル、「Poor Man's」 Fibers For 1.8

Fibersの総まとめ:NeverBlockがRailsコンパチブル、「Poor Man's」 Fibers For 1.8

NeverBlockはライブラリであり、非同期データベースアクセスにRuby Fibersを使用する。これまで、Fibersを使用するには、NeverBlockはRuby 1.9で実行されなければならなかった。NeverBlockの新リリース(リンク)により、Fibersの機能であるバックポートを使用することで問題を解決する。近ごろAman Gupta氏は、「Poor Man's Fibers」(NeverBlock GithubリポジトリのFiber実装)(リンク)と呼ばれるRuby Threadsに基づいてFiber実装を公開した(リンク)

ThreadsでFibersをエミュレートするには、メモリの使用やスケジューリングオーバーヘッドということになると、実際のFibersよりも多くのリソースを使用する。しかしながら、NeverBlockはどっちみちFibersをプールする。それによりバックポートを使用することの影響を制限する。JRubyはRuby 1.9サポートの一部として、Fibers(JRuby Fiber 実装向けのGitHubリポジトリ)(リンク)へ同様の(試験的な)アプローチを使用する。JRubyのFibers実装はまた、すべてのFiberをThreadにマップするので、「Poor Man's Fibers」と同様のパフォーマンス特性がある。NeverBlockの作成者の一人であるMuhammed Ali氏は、FibersとThreadsのコストを比較検討した(リンク)。それにより、Ruby 1.9のFibersは作成時に必要なメモリと時間がかなり少ないことを示している。

NeverBlockの新リリースにおける別の機能は、Rails向けのビルトインサポートである(リンク)
Ruby on Railsフレームワーク向けのエンドツーエンドのシームレスなサポートである。Railsへのサポートの追加はdatabase.ymlの行を修正する のと同じくらい簡単であり、またenvironment.rbファイルに2行追加するのと同じくらい簡単である。

さまざまなサーバやデータベース向けに行を追加するための、詳細情報が関連付けられた掲載記事にのっている。

ますますFibersが注目され(リンク)、Ruby 1.9.1が安定してきた(リンク)状況下で、Fibersを使用することを検討しただろうか?

原文はこちらです:http://www.infoq.com/news/2008/09/poormansfibers-rails-neverblock

この記事に星をつける

おすすめ度
スタイル

BT