标签:
杂谈 |
补充知识点:对于绝大多数平台而言,Reseved
Total内存 = Reserved Unity内存 GFX内存 FMOD内存 Mono内存。
Reserved Unity
通过针对大量项目的深度分析,我们发现导致 Reserved Unity 内存分配较大的原因主要有以下几种:
WebStream内存占用:WebStream为项目通过特定API(WWW、CreateFormMemory等)加载AssetBundle文件所开辟的较大块内存。主要用于存放AssetBundle的原始数据和解压后数据。
序列化信息内存占用:Unity引擎的序列化信息种类繁多,其中最为常见且内存占用较大的为 SerializedFile。该序列化信息的内存分配主要为项目通过特定API(WWW.LoadFromCacheOrDownload、CreateFromFile等)加载AssetBundle文件所致。
资源内存占用:主要包括Mesh、AnimationClip、RenderTexture等资源。在默认情况下,当FBX模型导入时,其 “Read/Write Enable” 选项是默认开启的,即其Mesh网格数据会在 Reserved Unity 中保留一份,便于项目在运行时对Mesh数据进行实时的编辑和修改。同时,如果研发团队同样开启了纹理资源的 “Read/Write Enable” 选项(默认情况下为关闭),则纹理资源同样会在 Reserved Unity 中保留一份,进而造成其更大的内存占用。
GFX内存
(关于Unity的内存管理机制,请戳https://www.uwa4d.com/doc-pa-memory.html 同时,我们也会在以后的微信推送中开设内存专题,欢迎关注!)
http://tc/maxwidth.2048/tc.service.weibo.com/p/mmbiz_qpic_cn/476a80446eebc98d91ee13cb169da92e.jpgReserved