Caching 缓存技术

Caching 缓存技术

如果我们的代码反复调用导致堆分配的函数,然后丢弃结果,这将创建不必要的垃圾。相反,我们应该存储对这些对象的引用并重用它们。这种技术称为缓存。 在下面的示例中,每次调用该代码都会导致堆分配。这是因为创建了一个新数组。


void OnTriggerEnter(Collider other)

{

Renderer[] allRenderers = FindObjectsOfType<Renderer>();

ExampleFunction(allRenderers);

}

下面的代码只导致一个堆分配,因为数组只创建和填充一次,然后缓存。缓存的数组可以反复使用,而不会产生更多的垃圾。


private Renderer[] allRenderers;

void Start()

{

allRenderers = FindObjectsOfType<Renderer>();

}

void OnTriggerEnter(Collider other)

{

ExampleFunction(allRenderers);

}