6月25日付け: 開発版 Rails の変更点 “先を行くこと” (”Living on the Edge”) その2: パフォーマンス改善 — Ruby on Rails 公式ブログより
最初の “先を行くこと” では API の変更について扱いましたが、前回も述べたとおり今回はパフォーマンス改善について扱おうと思います。
では、早速。
高速になった ERB テンプレート
ジェーミー・キャンパー (”Jeremy Kemper”) が ERB の処理を、特にヘルパーメソッド concat と capture を効率化してくれました。また「特別な」ERB である _erbout は、インスタンス変数に置き換えられ、以下の様な結果が生まれました。
- バインディングがあちこちにコピーされなくなった結果、(メモリー)パフォーマンスの改善
- 一般的に重い処理が多い eval メソッドの使用回数の減少
- 文字列バッファーをスワップできるので、_erbout を切り出す必要が無くなった
- output_beffer で文字列バッファーを読み書きでき、必要に応じてオーバーライド可能になった
関連する変更セットは 993697a obdb7d3 4d4c8e2 です。
部分テンプレートと JavaScript ヘルパーの高速化
キャンパーさんによって、部分テンプレートと JavaScript ヘルパーの初期化にリファクタリングが施され、処理速度と処理効率が最適化されました。これらは、キャンパーさんが最近コミットした最適化のほんの一部でしかありません。詳細は Rails へのコミットをご覧ください。他の高品質なオープンソースプロジェクトからも学べる様に、これらのコミットからも学ぶことがたくさんあります。
RecordIdentifier メソッドの高速化
RecordIdentifier が「メモ化機能」(”Memo-ization”) の単純な利用により、語形変化 (”Inflection”) が少なくなる等して高速化されました。RecordIdentifier は、ActiveRecord モデルの ID を気にせず一意に認識する為に使われることが多い他、キャッシュキーや、部分テンプレート等でも使われています。
キャンパーさんによる関連する変更セットは c1a9820 566d717 です。
キャッシュの消極的読み込み (”Lazy-loading”)
お知らせ: この変更は、後ほどの変更 6573f6a で元に戻されました。
ActiveSupport::Cache モジュールに含まれるいくつかのキャッシュストアが、消極的読み込みを行う様になりました。実際に使い始めた時にのみ、“require” メソッドで読み込まれることを意味します。
きょうのはま
先日受けた英検一級の一次試験に通過していました。受験時に語彙問題だけずいぶん難しいと思ったのですが、案の定、語彙問題の得点が一番悪かったです。
Filed under: Ruby, ソフトウェア開発, ドキュメント, 翻訳, 開発版 Rails "edge" |



No Responses to “6月25日付け: 開発版 Rails の変更点 “先を行くこと” (”Living on the Edge”) その2: パフォーマンス改善 — Ruby on Rails 公式ブログより”
Leave a Reply