こんにちは、todeskingです。 ScalaMatsuri 2016将軍スポンサーが合同で開催した「Scala将軍達の後の祭り」 というイベントで、バイトコードの実行時最適化について発表してきました。 抽象化によってオーバヘッドが存在するコードを実行時にバイトコードレベルで最適化すれば、抽象化とパフォーマンスが両立出来てお得、という夢のある話です。 以下、補足など。 なぜ実行時に最適化するのかこれにはいくつか理由があって、 安全性クラスの解決は実行時に行われるため、コンパイル時と実行時で見えているクラスが違うということがありえます。 そのため、静的に大域的な最適化をする場合は、実行時にクラスパスが変化しないことを保証する必要が出てくる解析が楽実際に構築されたインスタンスを元に最適化できるので、フィールドの値に基づく最適化が楽柔軟性実行時になるまでインスタンスの内容が確定しない場合(外部