[2021-9-13 학교 수업중 필기 내용]

C#의 Vector3는 사실 클래스가 아닌 구조체 형식이다.

Vector3 pos = new Vector3(1.0f,2.0f,3.0f);에서 new는 사실 동적할당의 용도로 사용된것이 아니다.

C#에서 구조체는 reference type이 아닌 value type이다.

따라서 구조체는 heap공간이 아닌 stack 공간에 저장될 확률이 높다.

왜 C#에서 구조체는 value type인걸까?

value type의 경의 변수가 선언되었을 때, stack 공간에 저장된다.

메모리 관리 측면에서 heap공간은 stack공간에 비해 비용이 굉장히 높다(시간복잡도가 높다).

즉, stack 공간을 활용할수록, 성능 향상이 될 수 있다.

따라서 자주 쓰는 변수의 경우 클래스 대신 구조체로 구현시 성능 향상효과를 얻을 수 있다.

 

'Unity > C#' 카테고리의 다른 글

[Unity/C#] Update와 FixedUpdate  (0) 2019.06.17
[Unity/C#] Ray&Raycast  (0) 2019.06.11
-C#- Awake/Start/Update  (0) 2019.06.03
-C#- 대리자(delegate)  (0) 2019.05.28
C# - Vector3  (0) 2019.04.03

+ Recent posts