Ruby Association Activity Report
話したいこと
RubyKaigi の内容
テスト難しい
オーバーヘッド
lockstep sampling
プロファイルの形式の検討
flat じゃないと困る
メモリやべぇ
構成 (30m, 3m = 10%)
自己紹介 (1m)
超頭出し: Pf2 の話をします
プロジェクト「Ruby のパフォーマンスプロファイリングの改善」について (3m = 10%)
パフォーマンスプロファイリングとは
CPU profiling, heap profiling
Ruby のプロファイラの現況
Stackprof, ruby-prof, rbspy
プロジェクトのゴール設定
他言語処理系のプロファイラの分析
Ruby に固有のパフォーマンス特性
Multithread-aware
Ruby と C が混ざっている
GVL とかの話ができるといいね
成果物
Scrapbox での知見の公開
Pf2 そのもの
GitHub, RubyGems.org 貼る
Pf2 の機能の紹介 (6m = 20%)
デモ動画をいくつか見せる
bundle install, optcarrot, rails, ...
Continuous (仮) のものも見せたい
使いかた
特長
Firefox Profiler
Native Stack Consolidation
構造(コンポーネント) ここじゃないような
Sample collector
Scheduler
Pf2 が解決する課題 (9m = 30%)
Ruby と C コードが混ざる
Consolidation
マルチスレッド
rb_profile_thread_frames
Sample collector の話をここでできる?
中間表現の検討
Rust gem
プロファイル結果の正当性の評価の困難さ
→ これはもしかしたら follow up 送りかな
オーバーヘッドの評価
実行時間
memory bloat
Pf2 と Ruby プロファイリングの未来 (6m = 20%)
何話すねん
プロファイルをログデータのように扱う、continuous の先の世界
まとめ (1m)
謝辞 (1m)
k0kubun さん
進行の様子を紹介できると良いかも
質疑応答 (3m = 10%)
メモ
新規性や解決した課題がきちんと伝わるように構成する
いい感じのビジュアライズをどう実現したか?
「Ruby に固有のパフォーマンス特性」をいかにプロファイル可能にしたか?
評価の困難さ
発表後のメモ
話せば良かったこと
Tracing は重いから、プロファイラのオーバーヘッドによって測定が正確でなくなることがある
Local profiling vs profiling in production
ローカルの場合、IDE的なintegrationをやりたいこと
---
Grant に書いたこと
このプロジェクトでは、Rubyプログラムのプロファイラを新たに開発する。パフォーマンスの高いプログラムを記述するにあたって計測は非常に重要であり、ここでプロファイラは大きな役割を果たす。
より実用的な分析の一助となるよう、すぐれたビジュアライズ機能をもち、プロファイル対象となるプログラムや Rubyインタプリタとの統合を通して、より詳細な情報を出力できるプロファイラを実装することを目指す。
あわせて、実装に関する知見の構築・公開や、既存のプロファイラの改善活動にも取り組む。