私はC#を使用してゲームをプログラミングしています。したがって、私は非常にパフォーマンスが心配です。クラスVS ref構造
主な相違点は何か、そして可能であれば、クラスを使用してデータを渡すか、または参照渡しの構造体を使用するかのパフォーマンスに関する考慮事項を知りたいと思います。
パフォーマンス上の理由から、データをコピーしないことをお勧めします(refを渡すことはここでの値よりもはるかに高速です)。
私は、クラスは常に参照によって渡され、構造体は値渡しされていることを知っていますが、ここで参照することによって構造体を渡すことについて説明しています。
私が渡したいデータの例:前の例で
public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
public PathCompleteDelegate callback;
public Vector3 start, end;
public PathSize unitSize;
public BoxCollider boxCollider;
}
は、クラスを使用する場合との違いを作りますか?もしそうなら、違いは何ですか?この例では、クラスが構造体より高速でしょうか?どうして?
ありがとうございます。 Joao Carlos
両方の方法でパフォーマンスプロファイリングを試しましたか?構造体がメソッド外にスコープされていると、ヒープ上に(ヒープ上のクラスに含まれるように)ヒープ上に配置されます。私はクラスまたはref構造体がメソッド呼び出しの点で同じパフォーマンスであると思われます。 –
私は多くの経験プロファイリングがありません。Unity3Dのプロファイラを使ってプロファイリングチェックをしましたが、違いは見られませんでしたが、このタイプの "小さな魚" 、または他のすべてのゲーム関連のプロファイリングの間にまったく違いがないかどうかを調べることができます。 –
OO言語でゲームをプログラミングしている間は、私は構造体に時間を費やすことはありません。 **私が**パフォーマンスの問題を得る前に直面する問題は**ゲームを終了していない**です。クラスとオブジェクトは、devの速度IMOを向上させます。 – Bitterblue