タグ

yjitに関するiga_kのブックマーク (7)

  • Ruby 3.3.2 (+YJIT) アップデートによるパフォーマンス改善レポート - inSmartBank

    はじめに こんにちは!株式会社スマートバンクでサーバサイドエンジニアをしている @nagasawa です。 2024年6月より弊社では Ruby 3.3.2 を番アプリケーションで稼働させ始めたため、バージョンアップ前と比較してどの程度パフォーマンスに変化が現れたのかをご紹介いたします。 また、今回を機に YJIT Metrics の可視化と YJIT の遅延起動にも取り組んだため、その手法や効果についてもこの記事内でシェアできればと考えています。 前提 下図のシステムアーキテクチャ図の通り、弊社では RubyRails で開発されたいくつかのシステムを稼働させています。 この記事では core-api と呼ばれている私達が開発してる「家計簿プリカ B/43」の機能のほぼ全てを提供しているシステムのパフォーマンス変化をご報告いたします。 バージョンアップ前 バージョンアップ後 Ru

    Ruby 3.3.2 (+YJIT) アップデートによるパフォーマンス改善レポート - inSmartBank
  • 『家族アルバム みてね』はRuby 3.3で動いています

    こんにちは、みてねプロダクト開発部 プラットフォームグループ SREチームの kohbis です。 『家族アルバム みてね』(以下、みてね)では、ほとんどのサーバーサイドをRuby on Railsアプリケーションで展開しています。 そしてタイトルの通りですが、2024年6月時点でみてねのアプリケーションのすべてにおいてRuby 3.3.3へのアップグレードが完了したので、その結果について紹介したいと思います。 Ruby 3.3アップグレードの結果以下はみてねの主なAPIを提供しているアプリケーションのグラフ(平均)です。 Ruby 3.3リリースのタイミングで大幅にレスポンスタイムが改善していることがわかります🙌 Ruby 3.3へのアップグレードでおおよそ10%の速度改善を得られました。 グラフにはありませんがp95やp99も同様の割合、つまり速度としてはより大幅な速度改善にいたって

    『家族アルバム みてね』はRuby 3.3で動いています
  • Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ

    こんにちは。サーバーサイドエンジニアの @atolix_です。 今回はメドピアで番運用をしているアプリケーションの1つであるやくばと for Clinicにて、Ruby 3.2からRuby 3.3にアップデートを行った際のパフォーマンスの変化を計測しました。 Ruby 3.3ではYJITの大幅な改善が含まれているので、これによるアプリケーションへの影響を確認していきます。 www.ruby-lang.org gihyo.jp 前提 記事に記載されたデータは以下の条件で計測をしています。 Rails: 7.1.3.4 YJIT有効化時のオプションは特に付与していない状態(Dockerfileから環境変数を与えて有効化) 3.2.4(+YJIT)から3.3.1(+YJIT)へのアップデート 有効化前後の1週間を比較 パフォーマンスの変化 やくばと for Clinicではモノレポのアプリケ

    Ruby 3.3(+YJIT)へのアップデートによるパフォーマンス変化の計測 - メドピア開発者ブログ
  • Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp

    Ruby 3.3リリース! 新機能解説 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす 2023年12月25日、Ruby 3.3.0がリリースされ、様々な新機能が加えられました。連載では実際に携わった皆さんにその新しいRubyをご紹介いただきます。 RubyJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適化が行なわれ、実行が高速になります。Ruby 3.3にはYJITとRJITという2つのJITコンパイラがあり、デフォルトでは無効になっていますが、それぞれ--yjitと--rjitで有効化できます。 この回では、Ruby 3.3でYJITの性能特性が変化した点や、YJITに新たに追加された便利な機能、またRJITはどのように使うものであるかについて解説します。 YJ

    Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp
    iga_k
    iga_k 2024/01/22
    k0kubunさんのRuby3.3 YJIT記事
  • Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog

    Ruby 3.3がリリースされた。YJITには非常に多くの改善が含まれたリリースだったが、 NEWS解説記事やリリースパーティーでは 2点しか触れられなかったので、この記事ではRuby 3.3でYJITがどう改善されたかについて解説する。 YJITは既に実用段階 YJITRuby 3.1で導入されたが、Ruby 3.2の時点でexperimentalのマークが外れ、実用段階となった。 Ruby 3.2では、以下のような企業で性能改善が報告された。 DeNA: 40% 高速化 GMOペバボ: 18% 高速化 STORES: 6.5-7.5% 高速化 Timee: 10% 高速化 メドピア: 2.8% 高速化 BOOK☆WALKER: 20-30% 高速化 Discourse: 15.8-19.6% 高速化 Lobsters: 26% 高速化 CompanyCam: 20-40% 高速化 弊

    Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog
    iga_k
    iga_k 2023/12/28
    YJITすごい!!
  • Ruby 3.2+YJIT 本番運用カンパニーになりました #rubykaigi - Timee Product Team Blog

    こんにちは。2023年1月に株式会社タイミーに入社したバックエンドエンジニアの id:euglena1215 です。 RubyKaigi 2023 がとうとう明日に迫ってきました。楽しみですね。 タイミーは RubyKaigi で初めてブース出展を行います。至らぬ点もあるかと思いますが、RubyKaigi を一緒に盛り上げていければと思っています!どうぞよろしくお願いします。 productpr.timee.co.jp 今回はタイミーが番運用している Rails アプリケーションに対して Ruby 3.2.2 へのアップデートと YJIT の有効化を行い、パフォーマンスが大きく改善したことを紹介します。 RubyKaigi で「Ruby 3.2+YJIT 番運用カンパニーです」と言いたいので粛々と進めている— てっぺー (@euglena1215) 2023年4月19日 前提 タイミー

    Ruby 3.2+YJIT 本番運用カンパニーになりました #rubykaigi - Timee Product Team Blog
  • Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog

    estie でソフトウェアエンジニアをしている徳永(@yTo_9)です。 estie では Ruby を書いたりTypeScriptを書いたりしています! estie 夏のブログ祭りにかこつけて、せっかくなら普段は追わない部分だけど、気になっていたYJITなるものを深掘りしてみようと思い、「YJITがなぜRailsアプリケーションの高速化を実現できたのか」を調べてみたので紹介したいと思います。 「どうせ難しいんでしょ?」と思いながら調べてみたのですが、講演や論文の説明がわかりやすく、意外に概要を把握することは難しくありませんでした。 YJIT の核となっているのは Lazy Basic Block Versioning (LBBV) という手法で、これはRubyだけに限らず動的言語全般に適用可能な強力なアプローチであることがわかりました。 「あるタイプの条件分岐は、ほとんどの場合で片側しか

    Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog
  • 1