通过第二个对象引用对象或保留本地副本



我正在使用C#开发一个游戏,我想知道每帧引用这样的对象的性能:

object1.object2.object3

还是应该在本地保留对object3的引用?是否存在显著的速度差异?

谢谢!

对某人来说重要的东西对其他人来说可能无关紧要。有更多的对象取消引用操作肯定会花费更多,但这可能无关紧要。我假设它是这样的:

进行添加-取消引用操作有两个成本:

  1. 如果object2所在的缓存行不存在,则必须从内存中提取。如果它可能已经存在,则此成本为零
  2. 只有当我们获得了指向object3的指针时,我们才能加载它的缓存行。因此,一系列的去引用操作强制顺序执行,并在一定程度上防止无序执行。OOO执行是现代CPU变得更快的重要原因,尽管时钟速率没有

如果你对这些成本有多大没有直观的了解,你别无选择,只能衡量。

在本地保留对object3的引用肯定会提高性能。

最新更新