当前位置: 首页 > article >正文

Unity 热更新基础知识

文章目录

  • 1.一些名词
  • 2.三种编译方式
  • 3.Unity 两种脚本后端
    • 3.1 Mono
    • 3.2 IL2CPP
    • 3.3 对比

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 对比

特性MonoIL2CPP
编译方式即时编译(JIT),运行时编译代码静态编译(AOT),将IL转换为C++,然后编译为机器代码
性能性能较低,尤其是在复杂计算和大量对象时性能较高,适合高性能要求的游戏和应用
平台支持广泛支持,适用于大多数平台(但对iOS支持较差)支持大多数平台,尤其是iOS、Android和Windows,必须在iOS上使用
胞体大小通常较小(因为使用JIT,C#代码未完全转为机器码)通常较大(因为C#代码转为C++,需要生成完整的机器码),因此需要执行代码裁剪
构建时间构建时间较短构建时间较长,因涉及C++代码生成和编译
内存管理使用GC垃圾回收,可能导致延迟回收也使用GC,但在内存管理方面通常有更好的性能优化
功能支持支持更多动态功能,如反射、动态类型创建等对反射等动态功能支持较弱,需要额外处理
适用场景适合开发阶段和对性能要求不高的应用,快速迭代适合发布到生产环境,特别是对性能要求较高的应用和游戏

http://www.kler.cn/a/473522.html

相关文章:

  • 全新免押租赁系统打造便捷安全的租赁体验
  • 【Linux 之 二十 】使用 ln 命令创建符号链接
  • 基于视觉惯性 SLAM(VSLAM)、相机和 IMU 数据的融合执行 6 自由度位姿跟踪
  • SSM-SpringMVC-请求响应、REST、JSON
  • go语言学习 笔记 1(变量,语法,数据类型)
  • 课题推荐——基于GPS的无人机自主着陆系统设计
  • vue-整合校验validator demo
  • 79 Openssl3.0 RSA公钥加密数据
  • Fastapi + vue3 自动化测试平台(2)--日志中间件
  • WordPress Crypto插件前台任意用户登录漏洞复现(CVE-2024-9989)(附脚本)
  • 学习第六十二行
  • <论文>什么是胶囊神经网络?
  • 使用java springboot 使用 Redis 作为限流工具
  • 使用 SQL 和表格数据进行问答和 RAG(7)—将表格数据(CSV 或 Excel 文件)加载到向量数据库(ChromaDB)中
  • MySql---进阶篇(十一)----游标,条件处理程序,存储函数
  • Bash语言的计算机基础
  • 【优选算法】Binary-Blade:二分查找的算法刃(下)
  • 一款FPGA芯片开发的核心板(EP4CE6核心板)
  • WebRTC 的优缺点详细解析
  • 怎麼在iPhone iOS(Wi-Fi/蜂窩數據)上查找IP地址?
  • vue js实现时钟以及刻度效果
  • HTML5 波动动画(Pulse Animation)详解
  • 微信小程序中使用weui组件库
  • 基于知识蒸馏的跨模态目标检测方法总结
  • 【问题记录】npm create vue@latest报错
  • 后勤管理系统|Java|SSM|VUE| 前后端分离