风来时狂放 发表于 2021-1-8 17:47

据称 iOS 14.2 已支持 JIT,如果确有其事,会带来什么影响?

据称 iOS 14.2 已支持 JIT,如果确有其事,会带来什么影响?

天一教育培训寐 发表于 2021-1-8 17:51

说明苹果也在看其他家的工作呀
flutter和java纷纷支持了aot之后,同时支持aot和jit成为了这一类开发的一大特点
那苹果目前还只能aot,允许jit的话,至少开发时候测试就不需要做aot,直接jit先跑跑看了
至于说放开jit限制,我估计有些人是想多了
如何评价 iOS 14.2 或将开放 JIT 限制?要放开早就放开了,这个只是给xcode测试提供某些便利而已

老橡树1 发表于 2021-1-8 17:54

暂时不要想太多,需要打开unsigned page,基本上是给debugger用的。开发者证书加上一些技巧绕过jit限制已经有很多次了,每次都会被修复。这次模拟器的jit也只是自己签名,等能上App Store再搞个大新闻也不迟。

简单350 发表于 2021-1-8 17:57

我这边的开发者群给出的结论很有可能是打压 Unreal, 扶持 Unity 的 C# 和以 Lua 为脚本的游戏引擎生态. 顺带甚至可能放开 V8, 也就让 iOS 有了移植 VSCode 的可能. 毕竟 Apple 还是很想做好 Arcade 的.
另外一个放开的就是最近所谓的 iOS Shell App 的问题, 有开发者的应用因为内置了 libcurl 而被下架, 最后苹果道歉, 其实也反映出 Apple 开始对这一块态度开始开放.
至于为什么要允许 JIT, 我个人认为的理由还是几点:
允许游戏脚本层面更方便的热更新, 可以减少对 Lua 的依赖, 哪怕用 Lua 的也能用效率更高的 LuaJIT 而非解释器模式减少二进制部分的大小, 特别是当 Universal Binary 推广后, IL2cpp 的 AOT 代码体积和出包问题将会变成双份, 影响分发, 顺便 Apple 这边还需要更积极的推动乞丐版的容量上涨来帮助游戏落地, 只会让消费者看到更多加量不加价.改善峰值性能.
只不过这个这个问题, 现在要被打脸了.
Xcode将支持在ios14运行,有什么影响?

白刃玄衣及 发表于 2021-1-8 18:05

目前似乎是为了开发调试用的,然而即使允许游戏里用jit脚本也不一定真的能改变什么。
jit需要配合特殊的利于jit的脚本写法,而不是简简单单启用一下就可以了。如果写得不得要领,甚至会出现带jit的速度反而不如不带jit的速度快的尴尬情形。(别说了,都是泪)
举个例子,现在很多jit都是先跑个profile,然后再对热点分支生成jit代码。但是这种做法必须在入口时判断热点的条件,一旦不满足还是要退回到解释器+profile的流程。因此,如果代码写得足够“动态”,完美迷惑了jit的热点判断,那么就平白无故会加上很多额外开销。
退一万步讲,即使你用jit成功加了速,那为了热更更多本来应该写在C++/C里的逻辑就会被放置在脚本,并且游戏的功能和设计复杂度也会及时补位,以弥补jit带来的性能提升。(狗头.jpg
最后打个广告,之前做饥荒LuaJIT插件时做了一个兼容Lua 5.1的LuaJIT版本,并总结了一些LuaJIT和Lua 5.1主要的不同点:
cocos2dx目前的版本中用luajit代替了lua原生库,但是iOS上不是不支持luajit么?如果现有代码想从Lua 5.1移植到LuaJIT,又不想大规模动脚本,可以参考这个兼容版的LuaJIT(您可以自行去掉其中专门为饥荒做的兼容,只保留通用部分):
paintdream/DontStarveLuaJIT

戏做顿 发表于 2021-1-8 18:09

jit本质上和苹果的封闭不符合

明绍宗朱聿键鼻 发表于 2021-1-8 18:10

苹果这种技术独裁者真不好说他想怎么搞!想搞收购?兼并?开源?

老橡树1 发表于 2021-1-8 18:17

支持JIT受益最大的可能是模拟器类软件。
页: [1]
查看完整版本: 据称 iOS 14.2 已支持 JIT,如果确有其事,会带来什么影响?