我使用C#编程一个游戏,因此,我非常关心性能。类VS参考结构
我想知道什么是主要的区别,如果可能的话,使用一个Class来传递数据或者一个通过引用传递的结构的性能考虑。我希望不要复制数据,出于性能方面的原因(我认为通过ref的速度比通过这里的值快得多)。
我知道一个类总是通过引用传递,并且一个结构体是通过值传递的,但我在这里指的是通过引用传递结构体。
我要传递的数据的一个例子:
public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
public PathCompleteDelegate callback;
public Vector3 start, end;
public PathSize unitSize;
public BoxCollider boxCollider;
}
在前面的例子中,将使用类有所作为?如果是这样,那么区别是什么?在这个例子中,类会比结构更快吗?为什么?
谢谢。 若昂卡洛斯
您是否尝试过对两种方法进行性能分析?如果结构的作用域在方法之外,它就会在堆上(如堆中的类中所包含的那样)。我会怀疑类或ref结构在方法调用方面是相同的性能。 – 2012-03-29 10:11:19
我没有太多的经验分析,并且我使用Unity3D内置的分析器进行了快速分析检查,但是,我没有看到区别,但是,我不知道内置分析器有多好用这种“小鱼” ,或者如果在所有其他与游戏相关的分析中发现差异。 – 2012-03-29 10:15:07
在用OO语言编程时,我不会浪费时间在结构上。 **我**在获得性能问题之前会面临的问题是**未完成**游戏。类和对象增加了IMO的开发速度。 – Bitterblue 2013-11-08 14:55:47