<<
17/20
>>
First
Last
事例4 - Ruby MJIT
- 最近 Ruby に MJIT というのが入った
- C を生成してホストのコンパイラで .so 作って dlopen というすごい実装
- メモリ消費が多くなる(のでキャッシュミスが発生しがち)らしい
普通のJITと比べてもムダがあって
- 生成されたコードで、実際触られるセグメントが .text (R-X) と .got (RW-) のふたつある
- .got だけのために必ず 4k 消費するのはもったいない
- .text も 4k のあまり部分がもったいない
- 正しい解決は C コードをある程度まとめてコンパイルすることでしょうが