分享Unity的Profiler分析和解决GC.MarkDependencies

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享Unity的Profiler分析和解决GC.MarkDependencies相关的知识,希望对你有一定的参考价值。

Unity和C#的GC问题

其实对于一些处理,特别容易产生小GC,积小成多也是一个大问题,例如:

- 多线程处理

- Update()

- Loop Set Data

我的问题也很明显,只要勾选了输出log(view) 显示处理,则必然出现如下峰值图形(红色放行框),没勾选的前半部分图形并不会有问题,相对平滑

Unity的Profiler也挺好的,有高亮提示

 

关于 GC.MarkDependencies,可参考:

【酷熊科技】工作积累 ----------- 内存优化之GC.MarkDependencies_weixin_33788244的博客-CSDN博客

一些装箱,拆箱的处理

这里有2~n个问题,其实也没搞懂

- 做过c++的同学,可能知道String.memcpy是字串复制,但我也没搞懂这段代码哪里用到string

- gc alloc也是没搞懂

        protected UIVertex[] SetVbo(Vector2[] vertices, Vector2[] uvs)
        
            UIVertex[] vbo = new UIVertex[4];
            for (int i = 0; i < vertices.Length; i++)
            
                var vert = UIVertex.simpleVert;
                //vert.color = color;
                vert.position = vertices[i];
                //vert.uv0 = uvs[i];
                vbo[i] = vert;
            
            return vbo;
        

一个【RPC】(远程命令)处理

未完成。。。。待补充

1.解決[cammand],避免依賴ILProcess

2.高層保持(hight level),換 底層通訊+protobuf

3.各種例子測試

以上是关于分享Unity的Profiler分析和解决GC.MarkDependencies的主要内容,如果未能解决你的问题,请参考以下文章

记一次基于Unity的Profiler性能分析

Unity中Profiler性能分析

unity性能优化-Profiler

Unity性能优化-官方文档简译

unity直连android真机在Profiler性能分析测试

unity profiler - Loading.ReadObject