我使用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