profiler unity内存是什么东西

 我来答
哈哈而0
2017-03-17 · 超过51用户采纳过TA的回答
知道答主
回答量:181
采纳率:0%
帮助的人:41.7万
展开全部
一方面是避免内存泄漏,另一方面是减少内存分配。

避免内存泄漏,需要细心的去进行黑盒白盒检查,一般都是设计上的不合理造成的。同时可以善用 Destroy() 方法,强制释放非托管内存。最好弄清楚 Unity 的资源管理机制,这方面网上教程很多,我就不做搬运工了。

减少内存分配,并不是说任何时候都不分配。在关卡进行时要将内存分配尽量减少,以降低 GC 的频率。可以用 Profiler 找出是所有分配了内存的地方,再根据经验判断是否要进行优化。我以前粗略的整理过一些会产生 GC 的操作,可供参考:

生成一个新的委托,例如将方法做为参数传入
对 List 进行 foreach
用枚举做 Key 进行字典查找(可能是默认比较器 GetHashCode 时装箱引起的,提供自定义的比较器应该能解决)
访问 animation 等组件
获取 SkinedMeshRenderer.bones 或 Mesh.uvs 之类的属性
yield return 0 (建议全部替换为 yield return null)

调用 GetComponentInChildren(建议自己实现一个无GC版本)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式