話題の中心は、JITのcode cache。
その辺りにあまり詳しくない私には厳しめでした。
code cacheはJITコンパイルされたメソッドを格納するもの。
クライアントモードなら32MB、サーバモードなら48MBが上限で、GC対象にはならない。
上限まで達したら、それ以上はメソッドを格納しない。
そのままずっとJITコンパイルしないわけにもいかないから、
JavaEEサーバに再デプロイするタイミングで、
code cacheの古い方の半分をアンロードして、メソッドを格納できるようにする。
とは言え再デプロイのタイミングのみだと、やはり都合が良くないから、
実行時にも並行してcode cacheのクリアを行いたい。
ただ10ms以上掛かる処理なのでsafe point(って何ですか?)で
毎回code cacheをクリアするのは影響が大きい。
だからmainスレッドと並行でcode cacheの監視スレッドを用意して、
必要なタイミングでsafe pointでのクリアを行う、というアイデアを考えている。
(要するにいまのHotspotVMのGCと同じ感じ?)
という感じで、自分の理解が合っているかどうかも怪しいぐらい
ちんぷんかんぷんでした (@@;;