これは、asumikam #phpcon_odawara Advent Calendarの11日目の記事です🎄 本日は「来る新 JIT エンジンについて知った気になる」の感想を書いていきます!
📖 スライド blog.nsfisis.dev
感想
JITエンジンについて知った気になりたくて登壇をみました。 全然知らない分野だったのですが、登壇内で前提を合わせつつJITエンジンのアップデートを語ってくれてるので、わかりやすかったです! そして、登壇みたらなんかちょっとだけ知った気になれました。
- 通常のPHPプログラムはPHPプログラム+opcode での実行
- もっとはやくしたいため、実行時に一部機械語にしてCPUで動かす
- ①コンパイルに時間を割きすぎないように&②すべての情報が事前に確定しない→のでどうする?
- ↑ここまではPHP8.3の話
- ↓ここからはPHP8.4の話
- IR(中間表現)というのが入る
- IRのおかげで、最適化できる&PHPに依存しない構造となれる
- メンテナンスできる人がより増える
ほぼ、いまむらさんのスライドの生き写しにはなっていますが、自分の頭の整理のために書いてみました。 言われていることはわかったので"知った気になる"な顔して良さそう!!(?)
ただ、「そもそもJITコンパイラ挟むことで遅くなることはないのか?(めちゃくちゃ大量の回数呼び出されてればたしかに速いか)」「IRを挟むことで1つ層が増えているけど逆に遅くならないのかな?」とか、動かしてないのでわからないことが多かった*1、特に後者の問いは今度いまむらさんに会った時に聞いてみよ〜っと。
参考文献にRFCがを貼っていてくれたのでみにいってみた。
Proposed Voting Choices
とかすごい。ほぼみんなのひとがPHP8.0で賛成だったのですね〜。
PRもみにいってみたのですが -> JIT for PHP based on DynAsm by dstogov · Pull Request #3792 · php/php-src · GitHub、差分エグい、これ、書く人もレビューする人も・・・すごい・・・いみわかんない・・・いみわかるけど・・・。 この超人的なPRのおかげでPHPが速くなっているので、ありがたい限りですヮ............
こちらもProposed Voting Choices
めちゃくちゃ賛成なのですね。はえ〜
PRもみにいってみたのですが -> A new PHP JIT implementation based on IR JIT framework by dstogov · Pull Request #12079 · php/php-src · GitHub ハヮヮ.......... dstogov さん、すごいですね........
nsfisisさん、登壇ありがとうございました
いまむらさんの発表はいつでも新しい衝撃とまだまだエグい壁あるよなあ、という鈍痛をわたしに与えてくれます。 で、いまむらさんの良いところは「ここどゆこと???」って聞くと、めちゃくちゃ教えてくれるんすよね〜〜。 最近はいまむらさんにわからないを表明するのこわくなくなってきた関係なので()、これからもいろいろ教えてもらっちゃお〜。
刺激的な発表、ありがとうございました!!
数年前の自分を発見しました (当時書いた社内向け技術記事を読む限り、入社した2週間後ぐらいに php/php-src を読んでいたらしい) https://t.co/ANdMnCrXG6
— nsfisis (@nsfisis) 2024年11月26日
▲ あと全然関係ないけどこれすき
*1:???「やればえぇやろ」←ハァハァ....ハァ...ミ"....