JIT编译对仿真器的性能至关重要,但Apple出于安全原因限制了它.
Emulator使用JIT通过动态重新编译代码来优化性能.
Apple的限制可能会改变,但目前,仿真器用户必须等待或考虑越狱.
JIT编译是“Just in Time”编译的缩写.
编译是将编程代码转换为机器代码的过程.
例如,您可以用C代码编写一些代码,然后为任何系统编译它,无论是大多数Windows计算机上的x86 CPU,还是手机和平板电脑上的ARM CPU.
模拟器的开发人员发现,JIT方法使他们能够达到否则不可能达到的性能和效率水平.
使用JIT技术,来自原始系统的仿真CPU代码可以动态地重新编译为目标主机系统的本机代码.
一旦代码被重新编译,它就可以被缓存并在下一次进行相同的调用时使用,而不需要再次编译.
使用JIT方法,可以创建自修改代码,这已经成为视频游戏仿真中的一种常见方法.
这在一些系统中是必要的,因为许多较老的系统,特别是基于盒式磁带的系统,将基于确切的游戏状态动态地和似乎任意地从盒式磁带加载代码.
JIT基本上允许实时处理这种方法.
JIT还允许仿真器优化重新编译的代码,以尽可能地利用主机系统.
我不是程序员,但即使从我的角度来看,根据我所读到的内容,当应用于棘手的仿真问题时,JIT似乎是一个极其强大的工具.
不幸的是,另一种可以充分利用JIT和自我修改代码的软件是恶意软件.
如果应用程序可以在其运行时生成并执行代码,这就为各种恶作剧打开了大门,因此提前编译所有代码可以更容易地确保代码的安全.
苹果也可能不希望出现应用程序在获得批准后改变其行为的情况.
如果预编译的代码是静态的,那么就不会发生这样的事情.
为什么苹果不允许JIT?连锁反应是,依赖JIT重新编译器以可用速度工作的软件将不会被批准用于App Store.
这就是为什么没有流行的Dolphin仿真器的原因.
当然,除了JIT重编译器之外,还有一种替代方法,称为“解释器”,但这种方法比JIT方法慢很多倍.
因此,尽管它可以奏效,但它将无法播放.
要么我们必须等到iPhone 30才能让解释器运行得足够快,要么我们不得不希望苹果放松一些限制.
现在主流应用商店上的仿真场景还为时过早.
苹果可能还会决定放松对模拟器的这一要求,或者调整其政策,以确保这些应用程序具有足够的安全水平.
这很可能是那些批准应用程序的人和开发应用程序的人之间解决的问题.
当然,对于那些越狱的人来说,这个问题不存在,这让他们可以旁路他们喜欢的任何代码.
然而,我不建议任何人在没有非常充分的理由的情况下这样做,对大多数人来说,越狱的负面影响根本不值得在他们的i设备上玩复古游戏.
尽管苹果似乎已经打开了iPhone、iPad和Apple TV上的模拟器应用程序的闸门,但你可能已经注意到,菜单上明显缺少某些系统.
这很有可能是因为App Store规则限制了一项名为“JIT”编译的特定功能.
当涉及到iPhone、iPad和Apple TV上的模拟器应用程序时,苹果似乎已经打开了闸门,但你可能已经注意到,菜单上明显缺少某些系统.
这很可能是因为App Store规则限制了一种称为“JIT”编译的特定功能.
与提前编译相比,JIT编译有许多优点,尤其是对当前在C 上发生的事情的适应性.
计算机以及用户要求程序做什么.