找回密码
 立即注册
查看: 543|回复: 7

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

[复制链接]
发表于 2021-1-8 17:47 | 显示全部楼层 |阅读模式
据称 iOS 14.2 已支持 JIT,如果确有其事,会带来什么影响?
发表于 2021-1-8 17:51 | 显示全部楼层
说明苹果也在看其他家的工作呀
flutter和java纷纷支持了aot之后,同时支持aot和jit成为了这一类开发的一大特点
那苹果目前还只能aot,允许jit的话,至少开发时候测试就不需要做aot,直接jit先跑跑看了
至于说放开jit限制,我估计有些人是想多了
如何评价 iOS 14.2 或将开放 JIT 限制?要放开早就放开了,这个只是给xcode测试提供某些便利而已
发表于 2021-1-8 17:54 | 显示全部楼层
暂时不要想太多,需要打开unsigned page,基本上是给debugger用的。开发者证书加上一些技巧绕过jit限制已经有很多次了,每次都会被修复。这次模拟器的jit也只是自己签名,等能上App Store再搞个大新闻也不迟。
发表于 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 | 显示全部楼层
苹果这种技术独裁者真不好说他想怎么搞!想搞收购?兼并?开源?
发表于 2021-1-8 18:17 | 显示全部楼层
支持JIT受益最大的可能是模拟器类软件。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 10:48 , Processed in 0.098465 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表