论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
人工智能
›
人工智能
›
Unity Mono内存简介与优化
Unity Mono内存简介与优化
三尺非寒
论坛元老
|
2025-4-9 06:50:57
|
显示全部楼层
|
阅读模式
楼主
主题
2106
|
帖子
2106
|
积分
6318
Mono内存简介
Mono内存是Unity引擎通过Mono虚拟机管理的所有C#对象(即MonoObject相关)的内存占用。在使用IL2CPP模式时,Unity实际上使用的是重写的IL2CPP虚拟机,此时Mono内存对应于IL2CPP虚拟机管理的所有C#翻译后的对象(即Il2cppObject相关)。尽管如此,由于历史缘故原由,Unity Profiler中仍旧使用“Mono内存”这一术语。值得注意的是,Unity在新版本中已经意识到这一不正确的称呼,并在2020.3.16f1版本中将其修改为GC(垃圾回收)。
Unity Profiler中的内存统计
在Unity Profiler中,内存统计通常包括两个值:
Used Total
和
Reserved Total
。很多开发者发现这两个值与通过其他工具(如PSS或XCode Memory)获取的内存占用数据不一致,这种环境是正常的,缘故原由如下:
内存管理范围
:
Unity工具统计的内存仅包括通过引擎自身内存管理器分配的内存,而Android或iOS统计的内存还包括应用进程运行所需的其他内存,例如JVM相关内存(Android特有)、线程栈内存、GPU渲染相关内存以及其他SDK分配的内存等。这些内存不在Unity引擎的管理范围内,因此无法统计在内。
操纵体系的内存统盘算法
:
不同操纵体系的内存统盘算法不同。例如,iOS 12版本修改了Metal相关内存的统计方式,使其归属于应用,这导致相同应用在不同iOS版本中的内存占用差异明显。
内存分配与体系统计的关系
:
应用内存的占用与通过内存分配函数分配的内存大小并不总是逐一对应。例如,直接通过malloc分配的内存可能不会立刻反映在PSS数值上。在iOS中,内存管理器将内存状态分为Clean和Dirty,只有在写入数据后,Dirty状态的内存才会被统计到PSS中。Android体系也有类似的内存管理机制。
Unity Profiler中的Used Total和Reserved Total
Unity引擎底层通过多种内存分配器(如HeapAllocator、BucketAllocator、DynamicHeapAllocator等)来管理内存分配和释放。因此,
Used Total
和
Reserved Total
实际上是内存管理器统计的所有内存分配器分配和使用的内存总大小。
Used Total
:当前已使用的内存总量。
Reserved Total
:当前已申请的内存总量。
Unity引擎为了提高性能,很多内存分配器采用了内存池的概念。这意味着应用在请求内存时,并不是每次都直接向操纵体系申请,而是预先向操纵体系申请一块大的内存地区,然后由内存管理器举行管理。这样可以减少体系调用的次数,提高内存分配和回收的效率。
Mono内存的获取工具
除了Unity Profiler,还有其他工具可以获取Mono内存占用:
iOS体系
:可以通过XCode的Instruments Allocations工具获取Mono内存占用。在工具中切换到All Heap,Mono内存对应的Memory Tag为255。
Android体系
:目前没有直接的工具来检察具体的Mono内存占用,开发者可以使用adb dumpsys meminfo命令来获取内存信息,其中Mono内存主要体现在Unknown或Native部门(具体表现可能因机型而异)。
总结
相识Mono内存的管理和统计方式对于优化Unity应用的性能至关重要。通过公道使用Unity Profiler和其他工具,开发者可以更好地监控和管理内存使用,确保应用在不同平台上的流畅运行。
二、何谓GC Alloc
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
三尺非寒
论坛元老
这个人很懒什么都没写!
楼主热帖
Centos7安装Mysql5.7(超详细版) ...
可观测性之两大误区
微信小程序--点餐系统(本地服务器+源 ...
小白也可以轻松破解被加密的ZIP口令啦 ...
Java多线程超级详解(只看这篇就够了) ...
如何获取Class对象呢?
GPRS与4G网络:技术差异与应用选择 ...
快速入门python看过的一些资料 ...
Docker 基础 - 1
Spark简单介绍,Windows下安装Scala+Ha ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
linux
前端开发
快速回复
返回顶部
返回列表