C# 通过第二个对象引用对象还是保留本地副本?

C# 通过第二个对象引用对象还是保留本地副本?,c#,performance,reference,C#,Performance,Reference,我正在用C#开发一个游戏,我想知道每一帧像这样引用对象的性能: object1.object2.object3 还是应该在本地保留对object3的引用?有没有明显的速度差异 谢谢 对某人重要的东西对其他人可能无关紧要。拥有更多的对象解引用操作肯定会花费更多,但这可能并不重要。我假设它是: 进行加法解引用操作有两个成本: 如果object2所在的缓存线不存在,则必须从内存中提取该缓存线。如果可能已经存在,则该成本为零 如果获得了指向object3的指针,则只能加载该缓存线。因此,解引用操作链强

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

object1.object2.object3
还是应该在本地保留对object3的引用?有没有明显的速度差异


谢谢

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

进行加法解引用操作有两个成本:

  • 如果
    object2
    所在的缓存线不存在,则必须从内存中提取该缓存线。如果可能已经存在,则该成本为零
  • 如果获得了指向
    object3
    的指针,则只能加载该缓存线。因此,解引用操作链强制顺序执行,并在一定程度上防止无序执行。OOO执行是为什么现代CPU速度越来越快的一个重要部分,尽管时钟频率没有

  • 如果您不能直观地了解这些成本有多大,那么您别无选择,只能进行测量。

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

    这取决于很多因素。。。您应该在您的上下文中分析这两个。具体取决于呼叫的数量。在这种情况下,我通常更喜欢会员。了解更多信息。您有支持这一点的度量吗?