728x90
[c#] 박싱(boxing), 언박싱(unboxing) 개념과 사용 이유 (tistory.com)
형변환과 비슷하지만 다른 개념
박싱(boxing) : 값 형식을 참조 형식(Object타입)으로 변환
언박싱(unboxing): 박싱했던 값을 다시 원상태로 복귀
명시적으로 적어주면서 언박싱해야함
왜 사용?
배열에 다양한 타입으로 넣고 싶어서
단점: 메모리상 비효율
1.값형 -> 참조형으로 바뀔 때, 스택에 있는 값을 복사하여 힙에 할당시키게 되고 언박싱 시 다시 스택에 가져오는 작업을 하면서 힙에 가비지가 쌓이게 됨
2.단순히 힙에 넣는 작업에 비해 '박싱'을 통할 시 20배 정도 많은 시간이 소요, 언박싱 시 4배 정도의 시간 소요됨
극복 방법: Generic 클래스로 형변환
728x90
'CS > C# & Unity' 카테고리의 다른 글
직렬화와 역직렬화 (1) | 2023.12.12 |
---|---|
스태틱 게임오브젝트와 배칭 (0) | 2023.10.01 |
드로우콜과 배치 (0) | 2023.10.01 |
[Unity]코루틴과 스레드의 차이 (0) | 2023.09.23 |
유니티 생명주기 (0) | 2023.08.21 |