RubyKaigi 2016レポート
成瀬ゆいさん,Ruby開発の世界に飛び込もう 〜RubyKaigi 2016 基調講演 3日目
2016年9月8日から10日まで,
RubyKaigi 2016 最終日となる3日目の基調講演はRubyコミッタである,
重要なのは具体的なユースケース
新機能は大きく二つに分けることができると言います。一つは新しくメソッドやクラスを追加すること。もう一つはRubyを動かすことのできる環境を増やすことです。
前者の場合,String#scrub
を例に,
Rubyの実行環境については,Continuation
の中でRubyのGCが壊れていたケースをあげ,
様々な側面からRubyの速度を考える
次に最適化について話をしました。速度改善に注目し,
まず速度改善の定石として,
- ベンチマークやプロファイルを取得する
- ボトルネックを発見する
- ボトルネックを解消する
New Relicを使ってRailsアプリケーション
Ruby組み込みライブラリの速度改善の例として,Regexp#match?
を取り上げました。このメソッドはRuby 2.$&
特殊変数を更新しないというメソッドです。MatchData
を作成しない分だけ高速になります。
VMを早くするアイディアとして,
procfsやcore fileを活用する
最後のテーマとしてデバッグやプロファイリング,
正規表現のマッチングでバックトラックの回数が爆発したときや,/proc/<pid>/stat
と/proc/<pid>/maps
から,
SEGVしたときの調査では,
core fileはクラッシュした時点のメモリの内容をダンプしたもので,
まとめ
最後に本日の発表を以下のようにまとめました。
- 現実に即したユースケースをきちんと考える
- 現実のアプリケーションのボトルネックが何かをきちんと調べる
質疑応答では,
バックナンバー
RubyKaigi 2016レポート
- 成瀬ゆいさん,Ruby開発の世界に飛び込もう 〜RubyKaigi 2016 基調講演 3日目
- Justin Searlsさん,恐怖のないリファクタリングを求めて 〜RubyKaigi 2016 基調講演 2日目
- まつもとゆきひろさん,楽しくプログラミングができる Ruby3の型の提案 〜RubyKaigi 2016 基調講演 1日目
関連記事
- nagachikaさん「安定したRubyを届けたい –All bugfixes are incompatibilities–」 〜RubyKaigi 2019 2日目 基調講演
- まつもとゆきひろさん「Rubyはさまざまな言語やコミュニティから影響を受けデザインされている」The Many Faces of Module 〜RubyKaigi2017 基調講演 2日目
- Evan Phoenixさん「Rubyを速くするのは今がその時」 〜RubyKaigi 2015 基調講演 3日目
- 小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目
- まつもとゆきひろさん,Rubyの変化で大事にしているルールを守りつつ「2019年までにRuby 3x3を実現したい」 〜RubyKaigi 2015基調講演 1日目