iOS 14.2帶來了JIT編譯支持可以讓仿真應用跑出原生性能
你可能知道一些非官方的iOS應用提供了某種模擬工作方式,這些應用基於黑客手段和漏洞運行,這大大降低了性能–但這種情況即將改變。蘋果已經在iOS 14.2上悄然引入了對Just-In-Time(JIT)編譯的支持,這將允許仿真應用在iPhone和iPad上全速運行。
AltStore背後的開發者Riley Testut分享了更多關於這一變化將如何影響這些提供虛擬機仿真的非官方應用的細節。但首先,我們簡單解釋一下什麼是JIT以及它在iOS上的工作方式。
JIT,即Just-In-Time編譯,是一種運行軟件的方式,軟件在執行過程中會被編譯,而傳統的軟件在執行前會被完全編譯。使用JIT,源碼會實時翻譯成機器的原生代碼。
蘋果從未在iOS上提供過對JIT編譯的官方支持,但一些開發者已經找到了用黑客運行JIT的方法,其代價是存在一些BUG和性能低下,而且這些漏洞在iOS 14上已經被徹底刪除。至少到現在為止是這樣。
暗示,蘋果在iOS 14.2 Beta 2中增加了對JIT編譯的支持,另一方面卻從未公開提到過這一點。JIT支持在整個測試版中都得到了持續維護,並在最終版本中得到了保留。開發者認為這是官方的實現,而不是蘋果的疏忽,但目前還無法證實這一點。
在iOS 14.2上支持JIT編譯後,仿真應用現在可以在沒有黑客手段、越獄等妥協的情況下全速運行。
例如,有了JIT,Delta理論上可以模擬PS2、GameCube和Wii等更強大的系統;如果沒有JIT,我們還需要再等幾年,硬件才有這個能力。
然而,這並不意味著我們會在App Store中看到仿真應用,甚至是任何其他使用JIT的應用。目前的實現只適用於側裝(side-load)應用,這些應用通常是通過Xcode和其他開發者工具而不是App Store安裝的。換句話說,這是為以調試為目的的開發者準備的功能,我們也想知道這種限制是否會長期存在。