[Unity]Unity性能优化实战之GC优化(1)

    xiaoxiao2021-03-25  122

    首先说一下非常简单的New GC,创建一个类

    public class A { string b; } 在Update函数中这样调用:

    void Update () { UpdateNewGC(); } void UpdateNewGC() { A a = new A(); } 会产生GC吗?

    答案是肯定的,基于对真理的孜孜不倦的追求,我们用Profiler观察

    那么要如何避免掉这个GC呢?

    首先,确定这个类是不需要拷贝的,或者深拷贝的开销比较少,然后我们把class改成struct就可以了,因为结构体是在栈中申请内存的,函数结束结构体就释放内存了,不会产生GC,如下:

    这是关于最简单的New出来的GC的避免方式,一般项目中,这种GC是最容易干掉的,但是项目中还有许多地方根本无法发现真正的GC从哪里冒出来,如果想深入研究,就继续看下去吧。

    转载请注明原文地址: https://ju.6miu.com/read-14449.html

    最新回复(0)