記事情報企業

Ruby の NODE を GC から卒業させた

Ruby の NODE を GC から卒業させた

こんにちは、技術部のフルタイム Ruby コミッタの遠藤(@mametter)です。メリークリスマス。本日 Ruby 2.5.0 がリリース予定です。いろいろな改善が含まれています。クックパッドからの主な貢献としては、「trace 命令の削除による高速化」や「分岐・メソッドカバレッジの測定のサポート」などがあります。ユーザから見える改善はいろいろと記事が出て...

更新日: 2017-12-25
記事の見出し
  • Ruby の NODE を GC から卒業させた
  • 概要
  • 背景
  • パース中に無駄な GC が起きる
  • 抽象構文木に詳細なコード位置情報を載せる余地がない
  • 抽象構文木の表現にムリ・ムダがある
  • おまけ:昔は GC 管理する意味があったが、今はもう意味がない
  • やったこと
  • NODE が NODE 以外のオブジェクトを指すケースの検出と対応
  • NODE を目的外使用しているコードの削除
  • Ripper 対応
  • 結果
  • パース中の無駄な GC がなくなった
  • NODE に範囲情報をもたせた
  • 抽象構文木の表現のムリ・ムダを省いていける準備ができた
  • まとめ
テックブログ情報
Ruby の NODE を GC から卒業させた
ブログクックパッド開発者ブログ
ブログ概要
QiitaQiita::cookpad
会社名株式会社クックパッド
会社概要国内6000万MAUのレシピ投稿・検索サービスの『クックパッド』を運営しています
上場情報Yahoo!ファイナンス