要約
今年はクックパッドからTreasure Dataに転職し、Rubyコミッターになり、結婚しました。
近況です / “Treasure Data に入社しました - k0kubun's blog” https://t.co/7G7WMahI6L
— k0kubun (@k0kubun) 2017年3月1日
書きました / “Ruby コミッターになりました - k0kubun's blog” https://t.co/2jkQehfmBc
— k0kubun (@k0kubun) 2017年5月15日
入籍しました
— k0kubun (@k0kubun) 2017年9月1日
発表
今年は7回発表したのですが、9ヵ月くらいJITを触っていたので3回はJITの話になってしまいました。
Cookpad TechConf 2017: 快適な開発環境, CI, デプロイ等の話
前職でやっていた仕事の中でまだ発表していなかった工夫について話しました。2018年は、現職で前職とは少し要件の違うデプロイ環境を整備していくことになっているので、やっていきたいと思います。
TreasureData Tech Talk 201706: TD APIの話とERBの高速化の話
RubyコミッターとしてメンテするようになったERBをRuby 2.5で2倍速くした話とかをしました。
TokyuRuby会議11: Haml 5の高速化の話
Haml 5で内部の設計を結構大きく変え、3倍速くした話をしました。これに起因したバグはいまのところなく、とても上手くいったように思います。
ぎんざRuby会議01: Railsのパフォーマンス改善全般
計測の重要性について語りつつ、今までの発表とは異なる点として、最近バイトコードを読みながら最適化をするようになったのでそのあたりの知見を共有しました。
RubyKaigi 2017: LLVMベースのJITコンパイラ LLRB
今年Ruby向けに2つのJITコンパイラを実装したのですが、その1つ目の話です。LLVMでJITを実装するのは割と素直な方針だと思っていたのですが、やってみると一番必要なのは既にCで書かれたコードをいかにインライン化するかというのが肝になるので、LLVMを生かしきれるステージはまだ先かなあという感じでした。
RubyConf 2017, Rails Developers Meetup 2017: JITコンパイラYARV-MJIT
2つ目のJITコンパイラ。upstreamへのマージ計画 https://bugs.ruby-lang.org/issues/14235 もある本命プロジェクトです。がんばっています。
JITコンパイラはいかにRailsを速くするか / Rails Developers Meetup 2017 // Speaker Deck
ホッテントリ
はてなブログを9記事、qiitaに20記事書きました。「要約」とか「発表」と重複あるけどブクマをいただいたのは以下の記事。
OSS活動
今年リリースしたOSS
Star | リポジトリ |
---|---|
★242 | k0kubun/llrb |
★28 | k0kubun/yarv-mjit |
★16 | k0kubun/benchmark_driver |
今年はほとんどJITを作っていたのであまり新しいものを作れませんでしたね。
benchmark_driverというのはRuby Grant 2017として採択されたプロジェクトで、ツールの開発は一旦キリがつき、来年ベンチマークセットやCIの整備をやっていくところです。
あと仕事でJavaを使ってbigdam-queueというミドルウェアを作ったので、それは来年公開しようと思っています。そこでJavaに少し慣れたので、既存のRailsアプリのワーカーをJavaで書き直したりもしていました。
Contribution
今年はHamlとRubyのコミッターになったのでそのあたりに割とコミットしていました。
Ruby 3x3に先んじてHaml 5x3しました / “Hamlを3倍速くした - k0kubun's blog” https://t.co/qat70imSMT
— k0kubun (@k0kubun) 2017年2月27日
僕がRuby 2.5に入れた改善ですが、ERB 2倍高速化、String#concatの高速化、 https://t.co/YIwrymzSr7 のkeyword_initオプション追加、ERB#result_with_hash 追加、binding.irb起動時の周辺ソースコード表示、Process.timesの精度改善 などをやりました
— k0kubun (@k0kubun) 2017年12月25日
パフォーマンスをある程度改善しつつRubyのテストがJITありで全て通り、Railsアプリが普通に動くようになり、pthreadのWindows移植も終わったし、そろそろ一旦Ruby 2.6にJIT入れてみませんかという提案です https://t.co/13fXdhmxTD
— k0kubun (@k0kubun) 2017年12月26日
なんかHaml 5x3とか言ってRuby 3x3を煽っていたけど、いつのまにか自分がRuby 3x3をやっていく感じになっていました。
2018年は
ひとまず1月を目安に以下のPRがマージできるよう、残っているバグを全部取り除いていくのをがんばりたいと思います。その先で、 今ある最適化のアイデアをどんどん入れてRailsとかも速くしていけるといいですね。