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

首先说一下非常简单的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从哪里冒出来,如果想深入研究,就继续看下去吧。


版权声明:本文为baijiajie2012原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。