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

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

    关注

    55

    文章

    4535

    浏览量

    138659
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3401

    浏览量

    155675
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    70639
  • JIT
    JIT
    +关注

    关注

    0

    文章

    7

    浏览量

    9892
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MESA 重新编译后 GUI 非常慢,如何恢复?

    LLVM 源代码(在修复了“通用”CPU 问题之后),并仅针对 RISCV 目标重新编译它。 然后我需要重新编译 MESA(21.3.8 可以避免 RISCV 目标上的 JIT 功能,也可以,因为
    发表于 03-31 08:11

    一文详解SystemC仿真库的编译

    AMD Vivado 设计套件以文件和库的形式提供仿真模型。仿真库包含器件和 IP 的行为和时序模型。编译后的库可供多个设计项目使用。用户必须在设计仿真之前通过名为 compile_s
    的头像 发表于 12-12 15:08 5043次阅读
    一文详解SystemC<b class='flag-5'>仿真</b>库的<b class='flag-5'>编译</b>

    引入AGV节省哪些成本?

    完成搬运、分拣等重复性劳动,而AGV的引入直接削减了人力需求。以某大型电商仓库为例,部署AGV后,原本需要50名工人完成的24小时分拣任务,仅需10名技术人员监控系统即可完成,人力成本降低超60%。这种替代不仅体现在数量上,更通过减少人为
    的头像 发表于 12-05 09:46 513次阅读
    <b class='flag-5'>引入</b>AGV<b class='flag-5'>可</b>节省哪些成本?

    【产品介绍】Questa One Sim软件

    优势与平台支持优势行业领先的高性能多语言仿真器用于测性设计(DFT)向量验证的最快仿真器高性能、高容量的集成调试环境覆盖率加速功能,助力更
    的头像 发表于 11-17 10:39 1281次阅读
    【产品介绍】Questa One Sim软件

    CANoe与Simulink联合仿真编译失败

    问题描述:在使用VS作为编译器的情况下,Matlab编译后失败,如下图:解决方案:原因:安装VS时,Windows的SDK版本未安装或者安装选项没有选择正确。1.打开VS,可以看到VS中的错误提示:2.打开此项目的属性设置:3.选择正确的SDK版本4.选择修改5.重新安装
    的头像 发表于 11-14 12:13 1997次阅读
    CANoe与Simulink联合<b class='flag-5'>仿真</b><b class='flag-5'>编译</b>失败

    【产品介绍】Modelsim:HDL语言仿真软件

    概述ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真仿真器。它采用直接优化的
    的头像 发表于 11-13 11:41 681次阅读
    【产品介绍】Modelsim:HDL语言<b class='flag-5'>仿真</b>软件

    Arm Neoverse CPU上大代码量Java应用的性能测试

    Java 虚拟机 (JVM) 内执行。JVM 必须先通过解释器或即时 (JIT) 编译器将字节码转换为机器码,而运行时生成的机器码对 Java 应用的效率和性能至关重要。
    的头像 发表于 11-05 11:25 936次阅读
    Arm Neoverse CPU上大代码量Java应用的<b class='flag-5'>性能</b>测试

    E203仿真编译filelist的使用

    在对E203硬件进行修改后,有时会出现编译时文件顺序不对的问题,导致仿真无法进行。这是因为在vsim/bin下的run.makefile中指定了通过wildcard导入所有rtl文件,根据默认的字母
    发表于 10-24 07:02

    如何在Vivado上仿真蜂鸟SOC,仿真NucleiStudio编译好的程序

    如标题所示,我们分享如何在Vivado上仿真蜂鸟SOC,仿真NucleiStudio编译好的程序 具体步骤 1. 将蜂鸟soc移植到Vivado 只要将端口映射好,注意配置好时钟和bank
    发表于 10-21 11:08

    边缘设备AI部署:编译器如何实现轻量化与高性能

    、ASIC等)上高效执行的机器代码。AI编译器在AI模型的部署和优化中扮演着关键角色,能够显著提升模型的运行效率和性能。   AI编译器的主要功能   AI编译器的主要功能包括模型优化
    的头像 发表于 07-06 05:49 6930次阅读

    轮边电机驱动汽车性能仿真与控制方法的研究

    与转向的控制策略,在 Madab/Simwlink 环境建立了控制模型,运用联合仿真方法对车辆在直线加速,转向和制动等典型工况下的行驶性能进行仿真验证。结果表明车辆的主要性能符合预期目
    发表于 06-10 13:10

    【经验分享】在Omni3576上编译Redis-8.0.2源码,并安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并与树莓派5上的结果进行对比。一、Redis是
    的头像 发表于 06-05 08:05 1084次阅读
    【经验分享】在Omni3576上<b class='flag-5'>编译</b>Redis-8.0.2源码,并安装及<b class='flag-5'>性能</b>测试

    Kuikly鸿蒙版正式开源 —— 揭秘卓越性能适配之旅

    编译为鸿蒙上高效运行的Native产物,探索Kotlin JS和Kotlin Native在鸿蒙平台上的适配落地及其性能优化;打通跨端层和鸿蒙原生层的相互调用通道,并驱动框架和App整体工作起来
    发表于 06-04 16:46

    新品 | 服务:InfineonSpice 离线仿真工具

    新品服务:InfineonSpice离线仿真工具InfineonSpice是一款功能齐全的模拟电路仿真器,可免费进行直流和OP仿真。这款基于Windows的独立工具具有设计、模拟和分析
    的头像 发表于 04-30 18:21 1108次阅读
    新品 | 服务:InfineonSpice 离线<b class='flag-5'>仿真</b>工具

    CY7C65215使用IOS中的USB CDC UART类驱动程序是否可以与IOS一起工作?

    我知道 CY7C65215 没有适用于 IOS 的驱动程序。但是,使用 IOS 中的 USB CDC UART 类驱动程序是否可以与 IOS 一起工作? 我们正在考虑在我们的设备中安装 CY7C65215 而不是 FTDI US
    发表于 04-30 07:57