2.5.0はどれだけ高速化したか(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。原著者の許諾を得て翻訳・公開いたします。1のスピード測定結果の記事を公開しました。2.4よりかろうじて速い程度で、ほんのちょっぴりがっかりしました。2.5.0の完成直前になってパフォーマンス上極めて重要なパッチが登場し、最終的な速度が大きく変わりました。どれだけ速くなったのでしょうか?早速見てみましょう。グラフでの概要グラフが見られればいいんですよねきっと?私もです。Bench(RRB)で測定した総時間のグラフです。ここでは、Discourse(Rails)のさまざまなリクエストを巨大なコンカレントサーバーを介してプッシュするのに要した時間を測定しています。うぐ、グラフの右側が短いんでないかい?総じて悪くない結果です。3.1%ここで興味深いのは、数値が大きい(速度が遅い)実行結果ほど高速化の度合いが小さくなっている点です。いう挙動はなかなか見かけません。すべての高速化で度合いの違いが生じた原因は、今回のパフォーマンスパッチのこの珍しい性質によるものであることはほぼ確実でしょう。この違いは多かれ少なかれ、Rubyバイトコード操作ごとの定数におけるオーバーヘッドによるものです。遅い実行に含まれるインストラクションの実行時間が長くなる(ようである)と、パフォーマンスの改善度合いが鈍ると考えられそうです。だいたいご覧のとおりの結果です。2.5.0は結局どれだけ速くなったの?」と質問されたときのために、実行時間ごとのパーセンタイルではなく、スループットで取り急ぎ回答してみようと思います。スループットを見てみましょう。5.0%「どれだけ速くなったの?」への回答は、「巨大なコンカレントRailsサーバーで5%スループットが高速化した」です。お友だちにも教えてやってください。「もっと速くなる?」もちろんです。多数の小さな操作が高速化したことで、Railsのリクエストが最大で7.5%高速化したのを眼にしました。Koichiはいくつかのベンチマークで12%高速化したのを見たそうです。「これでワイのRailsアプリはもっと速くなるの?」は、要するに「イエス」です。互換性が失われる可能性の低い、静かめのアップグレードとしてはまずまずの出来です。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。