Unity 热更新基础知识
文章目录
1.一些名词 2.三种编译方式 3.Unity 两种脚本后端
1.一些名词
IL(Intermediate Language)
:中间语言(类似于汇编代码)CIL(Common Intermediate Language)
:公共中间语言(特指在.Net平台下的IL标准)CLR(Common Language Runtime)
:通用语言运行平台
2.三种编译方式
JIT(Just in time)
:动态编译/即时编译 编译时:C# => CIL 运行时:CIL => 各平台原生码 => 执行AOT(Ahead of time)
:静态编译/提前编译 编译时:C# => CIL => 各平台原生码 运行时: 执行 (仍有部分JIT模式)Full AOT(Full ahead of time)
:完全静态编译 在AOT模式上去掉所有JIT编译 (ios只支持该模式)
3.Unity 两种脚本后端
3.1 Mono
3.2 IL2CPP
3.3 对比
特性 Mono IL2CPP 编译方式 即时编译(JIT),运行时编译代码 静态编译(AOT),将IL转换为C++,然后编译为机器代码 性能 性能较低,尤其是在复杂计算和大量对象时 性能较高,适合高性能要求的游戏和应用 平台支持 广泛支持,适用于大多数平台(但对iOS支持较差) 支持大多数平台,尤其是iOS、Android和Windows,必须在iOS上使用 胞体大小 通常较小(因为使用JIT,C#代码未完全转为机器码) 通常较大(因为C#代码转为C++,需要生成完整的机器码),因此需要执行代码裁剪 构建时间 构建时间较短 构建时间较长,因涉及C++代码生成和编译 内存管理 使用GC垃圾回收,可能导致延迟回收 也使用GC,但在内存管理方面通常有更好的性能优化 功能支持 支持更多动态功能,如反射、动态类型创建等 对反射等动态功能支持较弱,需要额外处理 适用场景 适合开发阶段和对性能要求不高的应用,快速迭代 适合发布到生产环境,特别是对性能要求较高的应用和游戏
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2274025.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!