memory profiler性能分析工具就是告诉我们每一帧各个任务内存占用大小,找出内存占用大的任务并予以优化解决,保证游戏每帧内存占用维持在一定的区间值,避免游戏内存占用过大造成卡顿甚至闪退。
Profile界面操作:
1.memory profiler主要包含了贴图,网格,材质,对象等模块,每一个模块对应一个不同的颜色,并在profiler视图中显示出来。
2.profiler视图中按照每一帧进行显示内存消耗数据信息,选择某一帧时就会显示当前选择帧的各个统计模块的内存消耗。
Sample视图操作:
1.该视图就是用来查看当前选中帧一些基本的内存占用信息,通过这些内存信息做一些深层次的判定,找出内存占用大的任务模块,并予以解决。
2.视图中操作面板简介:
UseTotal:当前帧总共分配的内存大小,包括Unity内核,Mono内核,GfxDriver资源驱动,FMOD音效驱动,Profiler分析工具等内存占用。
ReservedTotal:当前帧向OS总共预先申请的总共分配内存大小,具体帧在使用具体内存时就从中分配,这样可以预先分配大点,而不用每次使用都向OS请求分配一次,包括Unity内核,Mono内核,GfxDriver资源驱动,FMOD音效驱动,Profiler分析工具等内存占用。
Texture/Mesh/Materia/Audio/Animation:当前帧常用资源”个数 vs 内存大小”信息。
GameObject in Scene:当前帧场景中包含的GameObject对象个数。
Object in Scene:当前帧场景中包含的Object对象个数。
Object Count:整个游戏中,对象总共占有的个数。
GC pre frame:当前帧进行GC操作的次数和GC操作的内存大小。
Detailed视图操作:
1.该视图就是用来查看当前选中帧详细的内存占用信息,通过这些内存信息做一些深层次的判定,找出内存占用大的任务模块,并予以解决。
2.详细的内存占用主要包括以下几个方面:
Builtin Resource:unity editor或者unity自身的资源。
Not Saved:一些没有标记为保存的GameObject。
Assets:用户资源或者本地代码。
SceneMemory:场景中的GameObject对象或者Commonpent组件。
Other:以上模块除外的其他模块。
3.每个模块对应的内存占用都包含Memory内存大小和Ref Count引用计数,并且通过Refrenced By来记录详细的引用列表。
4.点击GameObject可以定位到编辑器中该GameObject的引用,方便查看。