0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

iOS 14.2 引入JIT编译 仿真应用可具有更佳性能

工程师邓生 来源:IT之家 作者:问舟 2020-11-07 09:30 次阅读

据外媒 9to5mac 报道,iOS 14.2 现已引入 JIT编译支持。

什么是 JIT?

正如字面意思,JIT—— just in time,即时编译。如果一个程序在它运行的时候创建并且运行了全新的代码,而非那些最初作为这个程序的一部分保存在硬盘上的固有的代码,即为 JIT。

说人话:JIT可以在固有代码的基础上生成新的代码,并自己运行新生成的代码。

有什么意义?

虽然苹果没有特意提到,但通过外媒 9to5mac 今日报道,可确认 iOS 14.2 中已引入 JIT编译支持特性。

在此之前,网传最广的说法是,由于审查等敏感问题,苹果不提供修改内存页面的访问权限的 API,也禁止对 POSIX 函数 mprotect()的调用,所以也无法实现 JIT。简单来说,IOS 封禁了内存(或者堆)的可执行权限,从而从根本上干掉了 JIT的存在。

虽然苹果一直不支持 JIT,但一些开发人员已实现通过 hack 途径达成 JIT的特性,但这会影响 App 运行的效率并带来玄学 bug。此外,这种漏洞在 iOS 14 中已被封杀。

而现在苹果在 iOS 14.2 中默默推出 JIT的原因是?

不知道,但不可否认的是,这将为仿真应用(非官方 App)在 iPhone 和 iPad 上全速运行提供了可能。

正文

外媒就此采访了开发者 Testut,她表示苹果实际上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,虽然一句话没有提,但这大概率是苹果官方表态而非 bug。

借助 iOS 14.2 上的 JIT编译支持,仿真应用现在可以在 iOS 中全速运行,而不会受到攻击和其他损失。

“例如,JITDelta 可以模拟更强大的系统,比如?PS2,GameCube 和 Wii。如果没有 JIT,开发者们将需要再等几年,才能使硬件具备此功能。起初我对此表示怀疑,但现在更倾向于认为这是苹果有意的更改。”

但是,这并不意味着用户会在 App Store 中看到仿真应用,用户甚至看不到任何使用 JIT的应用程序。Testut 表示,当前的实现方法仅适用于侧面加载的应用,这些应用通常是通过 Xcode 和其他开发人员工具而非 App Store 安装的。换句话说,这是供专门的开发人员调试 App 所使用的功能。

“我怀疑将 JIT限制为仅侧加载的应用是其背后的意图(而且更可能与使用 Xcode 进行调试时应用运行未签名代码的需求有关),但是我很想知道这种限制是否会长期存在。”

责任编辑:PSY

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    3873

    浏览量

    132185
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3323

    浏览量

    149182
  • 源代码
    +关注

    关注

    95

    文章

    2929

    浏览量

    66085
  • JIT
    JIT
    +关注

    关注

    0

    文章

    6

    浏览量

    9713
收藏 人收藏

    评论

    相关推荐

    如何提高Simulink仿真性能呢?有哪些使用技巧?

    无论模型的复杂程度如何,每个 Simulink 用户都希望提高仿真性能。本文介绍了许多实用技巧和技术,来帮助您在仿真工作流中获得最佳的性能
    的头像 发表于 01-18 10:01 268次阅读
    如何提高Simulink<b class='flag-5'>仿真性能</b>呢?有哪些使用技巧?

    Multisim14.2中CD4538高电平输出为什么只有5V?

    在Multisim仿真过程中发现CD4538在采用10V供电电源、输入信号均为10V的情况下高电平输出只有4.5V,如下图所示。 仿真用了Multisim14.0、Multisim14.2两个版本
    发表于 01-17 10:24

    VCS 仿真option 解析

    VCS的仿真选项分编译(compile-time)选项和运行(run-time)选项。编译选项用于RTL/TB的编译,一遍是编译了就定了,不
    的头像 发表于 01-06 10:19 560次阅读

    Triton编译器的原理和性能

    Triton是一种用于编写高效自定义深度学习原语的语言和编译器。Triton的目的是提供一个开源环境,以比CUDA更高的生产力编写快速代码,但也比其他现有DSL具有更大的灵活性。Triton已被采用
    的头像 发表于 12-16 11:22 1079次阅读
    Triton<b class='flag-5'>编译</b>器的原理和<b class='flag-5'>性能</b>

    .NET8为什么要引入Non-GC Heap这种机制呢?

    .NET8里面JIT引入了一个新的机制,叫做Non-GC Heap。JIT可以确保相关对象分配在Non-GC Heap上,该堆像其名称一样,不受GC管理。
    的头像 发表于 11-28 10:38 274次阅读

    pytorch模型转换需要注意的事项有哪些?

    什么是JIT(torch.jit)? 答:JIT(Just-In-Time)是一组编译工具,用于弥合PyTorch研究与生产之间的差距。它允许创建可以在不依赖Python解释器的情况
    发表于 09-18 08:05

    全新高性价比STM32H5让性能和安全触手

    全新高性价比STM32H5,引入STM32H5 MCU系列用于高性能设计,提高应用程序性能,有灵活的电源模式,安全性扩展
    发表于 09-05 06:51

    蚂蚁集团开源高性能多语言序列化框架Fury解读

    Fury 是一个基于 JIT 动态编译和零拷贝的多语言序列化框架,支持 Java/Python/Golang/JavaScript/C++ 等语言,提供全自动的对象多语言 / 跨语言序列化能力,和相比 JDK 最高 170 倍的性能
    的头像 发表于 08-25 17:05 741次阅读
    蚂蚁集团开源高<b class='flag-5'>性能</b>多语言序列化框架Fury解读

    ARM编译扩展矢量扩展用户指南

    ARM编译器工具链支持为ARMv8-A AArch64实现伸缩向量扩展(SVE)EAC(00rel1)的目标。 SVE是针对AArch64的下一代SIMD指令集,它为高性能计算(HPC)引入
    发表于 08-16 06:51

    Arm编译扩展矢量扩展用户指导

    Arm编译器工具链支持实现伸缩矢量扩展(SVE)EAC的目标(00rel2)用于Armv8‑A AArch64。 SVE是AArch64的SIMD指令集,它为High引入了以下体系结构特征
    发表于 08-08 06:34

    Emulex HBA捕获实用程序用户指南 14.2

    电子发烧友网站提供《Emulex HBA捕获实用程序用户指南 14.2版.pdf》资料免费下载
    发表于 08-02 15:59 0次下载
    Emulex HBA捕获实用程序用户指南 <b class='flag-5'>14.2</b>版

    ELXMCTP实用程序 修订版14.2

    电子发烧友网站提供《ELXMCTP实用程序 修订版14.2.pdf》资料免费下载
    发表于 07-27 15:24 0次下载
    ELXMCTP实用程序 修订版<b class='flag-5'>14.2</b>

    PyTorch教程14.2之微调

    电子发烧友网站提供《PyTorch教程14.2之微调.pdf》资料免费下载
    发表于 06-05 14:42 0次下载
    PyTorch教程<b class='flag-5'>14.2</b>之微调

    iOS网页设计的关键考虑因素是什么?

    iOS 设计时最重要的细节是确保网站响应迅速并针对移动设备进行优化,注意用户界面和导航,结合 iOS 特定功能,并在不同的 iOS 设备和版本之间进行全面测试。
    发表于 05-25 07:24

    汽车性能试验VR虚拟仿真系统

    的方法。这种方法具有以下意义: 首先,汽车性能试验VR虚拟仿真系统可以提高测试效率。传统的汽车性能试验需要使用大量的测试设备和测试场地,并且需要进行大量的数据采集和处理,而汽车
    的头像 发表于 05-22 14:29 597次阅读