沖縄 RubyKaigi 02 で Ruby の速いコードについて話してきました #okrk02
3/9 の 14:30 頃沖縄に着き、 3/11 の 19:15 の便で帰ってきました。沖縄、大変よかった。
話したこと
Ruby で速いコードを書く時に考えることを中心に、ベンチマーカーである benchmark_driver が良いという紹介と、ベンチマーク結果を元に、何故実行速度に差がでるのか、その追い方について話してきました。
benchmark_driver の好きな部分は大きくは 2 つあって、以下のものです。その他にも benchmark-ips と比較して改善ポイントがあるので、気になる方は README や k0kubun さんの記事 を見てみると良いと思います。
- 複数の指定した処理系の比較結果を得ることができる (
x.rbenv '2.4.3', '2.5.0'
のように) - 結果の出力形式を指定することができる(:markdown, :memory とか)
舞台裏的なはなし
難しかったのは、どこに焦点を合わせた内容にするかというところで、発表内容を考える時に悩みました。安定したベンチマークを取るための実行環境の話なども用意していたのですが、そこはバッサリと削りました。 また、一つ一つの Ruby の実装を詳細に追っていくよりも、よくある (と思っている) 数パターンの見方を説明した方が、そこから興味のある方は潜っていけるだろう。と、実はそういう選択をしていました。
今回、発表資料に自分で撮った首里城の写真を入れたいなという、謎のこだわりがあったのですが、スライド2枚目の首里城の画像は実際には発表後の 3/11 に行って撮ったものです。ちょうど人が映らない一瞬の隙を突いて撮れた会心の一枚です。 では発表時点ではどうしていたかというと、hsbt さんの日記に良い写真があることを知っていたので、一時的にお借りしたのでした。という裏話があったりします。
これ良いのでは。人が入らない状態で撮れた。 pic.twitter.com/KHAIma4W69
— 秒速さん@技術書典4 き-27 (@284km) 2018年3月11日
お疲れ様でした。ありがとうございました。
沖縄 Ruby 会議 02 が開催されたことで、これまで会ったことのなかった Rubyist と色々な話をすることができました。特に、そんなことできるの...!!?? みたいな驚きのあるコードが次から次へと出てくる okinawarb の方々を知ることが出来たのは衝撃でした。
明日なにが一番楽しみかというと、インターネットでしか会ったことない方に会えるのが一番楽しみかなあ。
— 秒速さん@技術書典4 き-27 (@284km) 2018年3月9日
運営に携わった方々をはじめ、みなさんありがとうございました。沖縄 Ruby 会議 03 にはまた参加したいですね。