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

【Unity】Mono相关理论知识学习

一种编译技术。

优点:

  1. 支持JIT编译:在运行时将IL编译成机器码。首次执行稍慢,好处在于运行更快,迭代更高效。
  2. 构建速度快:无需将IL转成C++,构建过程省去了IL2CPP的转换和原生编译步骤,适合开发阶段快速阶段测试和构建。
  3. 调试体验优秀:支持热重载、断点调试、变量查看、Call Stack等功能.
  4. 构建包体小:没有庞大的C++生成代码和原生库,在某些平台(如PC)可以获得更小的包体。
  5. 兼容性好:Mono支持大部分的C#功能和.NET API。
  6. 适用于某些平台:Unity编辑器就是Mono很多开发工作流程都是基于Mono

缺点:

  1. JIT导致的平台限制:iOS平台禁止使用JIT——Mono无法用于iOS发布
  2. 运行性能差于IL2CPP由于MonoJIT形式因此无法提前进行深度优化移动端嵌入式设备场景性能明显弱于IL2CPP特别启动时间内存分配效率
  3. 可逆性高,安全性差Mono使用IL文件运行容易编译
  4. GC垃圾回收效率相对较低MonoMono GC(Boehm GC)在大内存高频率分配场景效率较差IL2CPP提供UnityGC
  5. 对新语言的支持有限Unity旧版Mono运行支持最新C# 8 / 9特性例如异步流模式匹配增强

Mono构建Unity项目流程:C#源码 --> 用C#编译器编译成中间语言IL--> 生成 .NET DLL

Mono打包结果:生成.Net IL,存储.dll文件属于一种字节码格式不是原生机器码

Mono一个虚拟机运行动态读取IL字节码执行执行方式两种

1. (默认)JIT模式

Mono会在程序运行时IL转换为机器码(本地指令)然后执行对应机器当前平台(Windows/Android)CPU架构生成

2. (可选)解释执行模式

Mono可以直接逐条解释执行IL(性能较差,一般用于调试/嵌入设备)

http://www.dtcms.com/a/282493.html

相关文章:

  • 深入核心:理解Spring Boot的三大基石:起步依赖、自动配置与内嵌容器
  • Kafka——生产者压缩算法
  • IsaacLab学习记录(一)
  • opencv 值类型 引用类型
  • Hadoop架构演进:从1.0到2.0的深度对比与优化解析
  • ARCGIS PRO DSK 颜色选择控件(ColorPickerControl)的调用
  • Lumerical Charge ------ 运行 PN 结仿真
  • 74、搜索二维矩阵
  • Python+Tkinter制作音频格式转换器
  • PDF 转 Word 支持加密的PDF文件转换 批量转换 编辑排版自由
  • lua(xlua)基础知识点记录
  • 非控制器(如 Service、工具类)中便捷地获取当前 HTTP 请求的上下文信息
  • SQL,在join中,on和where的区别
  • HTTP性能优化实战
  • GeoTools 基础概念解析
  • 5-Nodejs-npm与第三方模块
  • smolagents - 如何在mac用agents做简单算术题
  • 导入无人机航拍屋顶,10分钟智能铺设光伏板
  • 基于 Drools 的规则引擎性能调优实践:架构、缓存与编译优化全解析
  • MySQL 8.0 OCP 1Z0-908 题目解析(28)
  • 项目学习笔记 display从none切换成block
  • AWS ML Specialist 考试备考指南
  • 自学中医笔记(一)
  • AWS WebRTC 并发 Viewer 拉流失败分析:0.3 秒等待为何如此关键?
  • 线上分享:解码eVTOL安全基因,构建安全飞行生态
  • 【docker】将本地镜像打包部署到服务器上
  • 逆功率检测设备防逆流解决方案守护电网安全
  • JavaScript中将JSON对象转换为URL参数格式的字符串
  • java工具类Hutool
  • Python day15