![]() |
Ruby - A Programmer's Best Friend |
Ruby 1.9.2はRuby 1.8.7と比較してファイルの読み込み処理が遅いことが知られている。多くのファイルを読み込むようなケースでパフォーマンスが発揮できず、最初の起動に時間がかかる。この問題を解決する話題がRuby Insideに「The Story Behind Ruby 1.9.3 Getting 36% Faster Loading Times」として掲載されている。
記事ではXavier Shay氏が取り組んだ解決方法を紹介。既存の実装はファイルの読み込み時に実施しているルックアップ処理の効率が悪いとし、それをハッシュを使って一気に処理を短縮する方法を提案している。20ほどの依存ライブラリを利用する3,000行ほどのRails 3アプリケーションで起動時間を比較したところ、Xavier Shay氏のパッチを当てたRuby 1.9.3開発版で37%の起動時間の高速化を確認できたという。
記事は続いてload.cに実施されたパッチを紹介。loaded_feature_path()における不要なループ処理を排除するパッチになっており、変更内容も少ない。同様の実験を行ったところ36%の起動時間高速化が確認できたとされており、結果的にXavier Shay氏のパッチと同レベルの高速化が実現されていることが報告されている。
Xavier Shay氏はより大量のファイルを読み込むようなケースではloader.cに適用した処理だけでは足りず、Xavier Shay氏が実施したようにハッシュを利用するコードへ書き換える必要があるだろうと指摘している。しかし、Xavier Shay氏のパッチは1200行を超えており、開発版へマージされるかどうかは不透明。
最終的にどういった方式が採用されるかは今後の開発次第ということになるが、少なくとも次にリリースされるであろうRuby 1.9系の最新版(またはRuby 2系か)では、1.9.2よりもアプリケーション起動時間の短縮化が実現されるとみられる。
| Ruby 1.8/1.9系が修正版リリース - 脆弱性発見、ユーザはアップデートを [2011/2/21] |
| どうなる? Ruby 1.8.8、Ruby 1.9.3、Ruby 2.0のリリース [2011/1/12] |
| RubyKaigi 2010、発表動画 [2010/9/2] |
| Ruby 1.9.2登場 [2010/8/19] |
| 【レポート】Rubyの実行環境、Linuxでベンチマークを取ったら… [2010/7/22] |
| WindowsのRuby、ベンチマーク結果 [2010/7/2] |
| 武蔵野化学研究所、高純度ポリ乳酸の高品質化に成功 [14:21 5/23] |
| 成層圏の「赤道準2年振動」は過去数10年弱まり続けている - JAMSTECなど [14:09 5/23] |
| TI、迅速なモーター回転設定が可能なセンサレスBLDCモータードライバを発表 [14:05 5/23] |
| AlteraのStratix V GX、PCI-SIGインテグレーターズ・リストに掲載 [13:56 5/23] |
| 住友電工、薄型化と回路の高精細化が可能な導電性ペースト接続FPCを開発 [13:45 5/23] |
|
オータス、Lightning搭載端末専用の補助バッテリー「MiLi Power Angel 2」 [15:39 5/23] 携帯 |
|
ライフサイズ、モバイル対応のビデオ会議ソリューションを発売 [15:39 5/23] エンタープライズ |
|
"円安倒産"相次ぐ可能性も--海外と輸入取引している零細企業、4割弱が赤字 [15:27 5/23] ライフ |
|
パセラとカプコンバーに「バイオハザード」最新作とのコラボメニューが登場 [15:11 5/23] ライフ |
|
Webフォントで魅せる!! デジタルステージ、BiND6.5のデザイン講座を開催中 [15:06 5/23] クリエイティブ |