最近,苹果对 iPhone、iPad 和 Apple TV 的模拟器应用放宽了限制,但有些游戏机系统却意外地缺席了。这背后的原因可能与 App Store 对一项名为“即时编译”(JIT)的技术的限制有关。
什么是即时编译?
即时编译是一种程序运行时将源代码转换成机器代码的技术。比如,用 C 语言编写的程序,可以编译成适用于各种系统,包括 Windows 电脑的 x86 CPU 和移动设备的 ARM CPU。
模拟器为何需要即时编译?
模拟器开发者发现,即时编译能显著提高性能和效率。它允许原始系统的 CPU 代码实时重新编译成目标系统的本地代码,并可被缓存,避免重复编译。
即时编译还支持自修改代码,这对于视频游戏模拟器尤其重要。一些老旧系统,特别是基于卡带的系统,会根据游戏状态动态加载代码。即时编译让模拟器能够实时处理这种动态加载,并优化性能。
苹果为何不允许即时编译?
然而,即时编译也可能被恶意软件利用。如果应用能在运行时生成并执行代码,将带来安全风险。预先编译所有代码有助于确保安全性。苹果可能也不愿看到应用在审核通过后改变行为。
这意味着依赖即时编译器的应用无法通过 App Store 审核,这也是流行的 Dolphin 模拟器缺席的原因。
解释器:即时编译的替代品
即时编译的替代品是解释器,但其速度远不如即时编译,导致模拟器运行缓慢。除非等到 iPhone 技术极大进步,或苹果放宽限制,否则模拟器应用在 App Store 上的前景不妙。
未来展望
App Store 上的模拟器应用还处于发展初期。苹果可能会调整政策,以确保模拟器应用的安全性。对于越狱用户,虽然可以侧载任何代码,但越狱带来的风险通常不值得仅为了玩复古游戏
0条评论