최적화와 관련하여
일반적으로, 구조체(struct)는 힙(heap) 사용을 줄일 수 있는 장점이 있다.
구조체는 값 형식(value type)으로 분류되며, 스택(stack)에 할당되므로 힙 메모리를 사용하지 않는다.
반면에 클래스(class)는 참조 형식(reference type)이며, 힙에 할당된다.
구조체는 작은 크기의 데이터를 담는 데 유용하며, 간단한 데이터 구조를 표현하는 데 적합하다.
구조체는 복사되거나 전달될 때 값이 복사되므로 추가적인 메모리 할당이 필요하지 않다.
이로 인해 메모리 사용이 효율적이며, 가비지 컬렉션과 관련된 오버헤드도 발생하지 않는다.
하지만 모든 경우에 구조체를 사용하는 것이 항상 좋은 선택은 아니다.
구조체는 값 복사가 발생하기 때문에,
크기가 크거나 복잡한 데이터 구조인 경우에는 성능과 메모리 사용면에서 부적합할 수 있다.
또한 구조체는 참조 형식인 클래스와 달리 상속이나 다형성을 지원하지 않는다.
따라서, 구조체를 사용하여 힙 사용을 줄이는 것은 작은 크기의 단순한 데이터에 적합하다.
큰 크기의 데이터나 복잡한 구조를 다루는 경우에는 클래스를 고려해야 한다.
최적의 선택은 구조체와 클래스를 상황에 맞게 사용하고, 프로젝트의 요구사항과 성능을 고려하는 것이다.
구조체와 클래스의 다른 차이점
클래스는 변수와 인스턴스가 따로이다.
그래서 new 연산자를 활용해서 객체를 생성해야 변수에 값을 대입할 수 있다.
구조체는 선언과 동시에 내부적으로 new생성자가 처리된다.
(예를 들어 int데이터타입도 struct이다.)
구조체는 상속이 안된다. 인터페이스를 장착하는 것은 가능하다.
'유니티 개발 기술 > 성능 최적화' 카테고리의 다른 글
물리, UI, 오디오 설정 최적화(유니티 공식 블로그 글 요약) (2) | 2023.10.14 |
---|---|
Spikes in Garbage Collection (0) | 2023.08.01 |
QualitySettings 클래스의 다양한 함수와 속성 (0) | 2023.07.25 |
GPU Instancing(GPU 인스턴싱) (0) | 2023.07.23 |
그래픽 렌더링 최적화 (0) | 2023.07.17 |