早在 2021 年,Ruby 就合併了去年與 Ruby 3.2 一起被視為生產級的 YJIT 即時編譯器。還有依賴於外部 C 編譯器的 MJIT 編譯器。本週登陸 Ruby 的是 RJIT 作為最新的即時工作。
RJIT 旨在取代 MJIT,它是一個用於生成本機代碼的純 Ruby 彙編程序——因此在運行時不需要像 MJIT 這樣的 C 編譯器,也不需要在構建時像 YJIT 這樣的 Rust 編譯器。 RJIT 的預熱目前比 YJIT 慢,但比 MJIT 快。
RJIT 正在生成類似於 YJIT 的代碼。在主要基準測試中,RJIT 的表現優於 MJIT,但目前的形式“遠不及 YJIT”。
這個新的 Ruby JIT 編譯器已經通過這個 pull 合併了,如果對所有的RJIT 的技術細節和基準。