当前位置: 首页 > 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.lryc.cn/news/589697.html

相关文章:

  • linux服务器traffic control的使用
  • RAG的文档问答系统-PYTHON
  • 微信小程序141~150
  • Swift 条件语句
  • Excel转PDF的三种方法
  • 【iOS】源码阅读(六)——方法交换
  • 数字魔方--玩转魔方的助手
  • 跟着Nature正刊学作图:回归曲线+散点图
  • Promise与Axios:异步编程
  • 基于CentOS的分布式GitLab+Jenkins+Docker架构:企业级CI/CD流水线实战全记录
  • MySQL 8.0 OCP 1Z0-908 题目解析(27)
  • WAN技术
  • ollama快速部署使用(windows版)
  • 【Java】【力扣】101.对称二叉树
  • Spring之核心容器(IoC,DI,基本操作)详解
  • 中国旅行社协会在京召开“文旅人工智能应用研讨会”,助力文旅创新发展
  • python —— 真二
  • 广州邮科光纤交换机的应用:网络世界中的幕后核心
  • 【Qt开发】Qt的背景介绍(二)-> 搭建Qt开发环境
  • SAP中批量处理角色(复制、修改、上载,生成)
  • Apache IoTDB(1):时序数据库介绍与单机版安装部署指南
  • Clip微调系列:《CLIP-Adapter: Better Vision-Language Models with FeatureAdapters》
  • 【Qt+error】error: use of undeclared identifier ‘MainWindow
  • QT技巧之快速搭建串口收发平台
  • C++ -- STL-- List
  • 上公网-从内网到公网
  • C++ 中两个类之间的通信方式
  • Linux 文件系统实现层详解:原理、结构与驱动衔接
  • C++回顾 Day7
  • 企业级实时流处理:Kafka Streams完整解决方案