據(jù)外媒 9to5mac 報道,iOS 14.2 現(xiàn)已引入 JIT編譯支持。
什么是 JIT?
正如字面意思,JIT—— just in time,即時編譯。如果一個程序在它運行的時候創(chuàng)建并且運行了全新的代碼,而非那些最初作為這個程序的一部分保存在硬盤上的固有的代碼,即為 JIT。
說人話:JIT可以在固有代碼的基礎(chǔ)上生成新的代碼,并自己運行新生成的代碼。
有什么意義?
雖然蘋果沒有特意提到,但通過外媒 9to5mac 今日報道,可確認(rèn) iOS 14.2 中已引入 JIT編譯支持特性。
在此之前,網(wǎng)傳最廣的說法是,由于審查等敏感問題,蘋果不提供修改內(nèi)存頁面的訪問權(quán)限的 API,也禁止對 POSIX 函數(shù) mprotect()的調(diào)用,所以也無法實現(xiàn) JIT。簡單來說,IOS 封禁了內(nèi)存(或者堆)的可執(zhí)行權(quán)限,從而從根本上干掉了 JIT的存在。
雖然蘋果一直不支持 JIT,但一些開發(fā)人員已實現(xiàn)通過 hack 途徑達(dá)成 JIT的特性,但這會影響 App 運行的效率并帶來玄學(xué) bug。此外,這種漏洞在 iOS 14 中已被封殺。
而現(xiàn)在蘋果在 iOS 14.2 中默默推出 JIT的原因是?
不知道,但不可否認(rèn)的是,這將為仿真應(yīng)用(非官方 App)在 iPhone 和 iPad 上全速運行提供了可能。
正文
外媒就此采訪了開發(fā)者 Testut,她表示蘋果實際上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,雖然一句話沒有提,但這大概率是蘋果官方表態(tài)而非 bug。
借助 iOS 14.2 上的 JIT編譯支持,仿真應(yīng)用現(xiàn)在可以在 iOS 中全速運行,而不會受到攻擊和其他損失。
“例如,JITDelta 可以模擬更強大的系統(tǒng),比如?PS2,GameCube 和 Wii。如果沒有 JIT,開發(fā)者們將需要再等幾年,才能使硬件具備此功能。起初我對此表示懷疑,但現(xiàn)在更傾向于認(rèn)為這是蘋果有意的更改?!?/p>
但是,這并不意味著用戶會在 App Store 中看到仿真應(yīng)用,用戶甚至看不到任何使用 JIT的應(yīng)用程序。Testut 表示,當(dāng)前的實現(xiàn)方法僅適用于側(cè)面加載的應(yīng)用,這些應(yīng)用通常是通過 Xcode 和其他開發(fā)人員工具而非 App Store 安裝的。換句話說,這是供專門的開發(fā)人員調(diào)試 App 所使用的功能。
“我懷疑將 JIT限制為僅側(cè)加載的應(yīng)用是其背后的意圖(而且更可能與使用 Xcode 進(jìn)行調(diào)試時應(yīng)用運行未簽名代碼的需求有關(guān)),但是我很想知道這種限制是否會長期存在?!?/p>
責(zé)任編輯:PSY
-
仿真
+關(guān)注
關(guān)注
55文章
4539瀏覽量
138703 -
iOS
+關(guān)注
關(guān)注
8文章
3401瀏覽量
155706 -
源代碼
+關(guān)注
關(guān)注
96文章
2953瀏覽量
70698 -
JIT
+關(guān)注
關(guān)注
0文章
7瀏覽量
9892
發(fā)布評論請先 登錄
MESA 重新編譯后 GUI 非常慢,如何恢復(fù)?
簡單高效的鴻蒙編譯提速技巧
技術(shù)分享 | RK3506如何交叉編譯frp wireguard
一文詳解SystemC仿真庫的編譯
引入AGV可節(jié)省哪些成本?
【產(chǎn)品介紹】Questa One Sim軟件
CANoe與Simulink聯(lián)合仿真編譯失敗
【產(chǎn)品介紹】Modelsim:HDL語言仿真軟件
Arm Neoverse CPU上大代碼量Java應(yīng)用的性能測試
E203仿真編譯filelist的使用
如何在Vivado上仿真蜂鳥SOC,仿真NucleiStudio編譯好的程序
邊緣設(shè)備AI部署:編譯器如何實現(xiàn)輕量化與高性能?
輪邊電機(jī)驅(qū)動汽車性能仿真與控制方法的研究
【經(jīng)驗分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測試
iOS 14.2 引入JIT編譯 仿真應(yīng)用可具有更佳性能
評論