저는 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