據外媒 9to5mac 報道,iOS 14.2 現(xiàn)已引入 JIT編譯支持。
什么是 JIT?
正如字面意思,JIT—— just in time,即時編譯。如果一個程序在它運行的時候創(chuàng)建并且運行了全新的代碼,而非那些最初作為這個程序的一部分保存在硬盤上的固有的代碼,即為 JIT。
說人話:JIT可以在固有代碼的基礎上生成新的代碼,并自己運行新生成的代碼。
有什么意義?
雖然蘋果沒有特意提到,但通過外媒 9to5mac 今日報道,可確認 iOS 14.2 中已引入 JIT編譯支持特性。
在此之前,網傳最廣的說法是,由于審查等敏感問題,蘋果不提供修改內存頁面的訪問權限的 API,也禁止對 POSIX 函數 mprotect()的調用,所以也無法實現(xiàn) JIT。簡單來說,IOS 封禁了內存(或者堆)的可執(zhí)行權限,從而從根本上干掉了 JIT的存在。
雖然蘋果一直不支持 JIT,但一些開發(fā)人員已實現(xiàn)通過 hack 途徑達成 JIT的特性,但這會影響 App 運行的效率并帶來玄學 bug。此外,這種漏洞在 iOS 14 中已被封殺。
而現(xiàn)在蘋果在 iOS 14.2 中默默推出 JIT的原因是?
不知道,但不可否認的是,這將為仿真應用(非官方 App)在 iPhone 和 iPad 上全速運行提供了可能。
正文
外媒就此采訪了開發(fā)者 Testut,她表示蘋果實際上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,雖然一句話沒有提,但這大概率是蘋果官方表態(tài)而非 bug。
借助 iOS 14.2 上的 JIT編譯支持,仿真應用現(xiàn)在可以在 iOS 中全速運行,而不會受到攻擊和其他損失。
“例如,JITDelta 可以模擬更強大的系統(tǒng),比如?PS2,GameCube 和 Wii。如果沒有 JIT,開發(fā)者們將需要再等幾年,才能使硬件具備此功能。起初我對此表示懷疑,但現(xiàn)在更傾向于認為這是蘋果有意的更改?!?/p>
但是,這并不意味著用戶會在 App Store 中看到仿真應用,用戶甚至看不到任何使用 JIT的應用程序。Testut 表示,當前的實現(xiàn)方法僅適用于側面加載的應用,這些應用通常是通過 Xcode 和其他開發(fā)人員工具而非 App Store 安裝的。換句話說,這是供專門的開發(fā)人員調試 App 所使用的功能。
“我懷疑將 JIT限制為僅側加載的應用是其背后的意圖(而且更可能與使用 Xcode 進行調試時應用運行未簽名代碼的需求有關),但是我很想知道這種限制是否會長期存在?!?/p>
責任編輯:PSY
-
仿真
+關注
關注
52文章
4283瀏覽量
135792 -
iOS
+關注
關注
8文章
3399瀏覽量
153044 -
源代碼
+關注
關注
96文章
2953瀏覽量
68348 -
JIT
+關注
關注
0文章
7瀏覽量
9808
發(fā)布評論請先 登錄
邊緣設備AI部署:編譯器如何實現(xiàn)輕量化與高性能?
輪邊電機驅動汽車性能仿真與控制方法的研究
【經驗分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測試

新品 | 服務:InfineonSpice 離線仿真工具

概倫電子先進數字仿真器VeriSim介紹
請問TapLinx IOS SDK與Xcode 16不兼容嗎?
大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)

Triton編譯器在高性能計算中的應用
Triton編譯器的優(yōu)化技巧
Triton編譯器的優(yōu)勢與劣勢分析
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
仿真系統(tǒng)的性能優(yōu)化技巧
如何通過建模與仿真提升電力電子組件的設計與性能?

【產品介紹】Simcenter Amesim系統(tǒng)仿真軟件

評論