MSDN에선 다음과 같은 조건을 만족하지 않는 한 class를 사용하는 것을 권장한다
1. 논리적으로 기본 자료형과 유사한 단일 값을 표현할 때
2. 인스턴스의 크기가 16바이트 이하의 크기를 가졌을 때
3. 불변일 때
4. 박싱(Boxing)이 빈번하게 일어나지 않을 때
물론 그냥 보고 넘어갈 수도 있겠지만,
하지말라던지 권장한다던지 이러면 더 좋다던지 등의 글이 있을 때 '왜??' 라는 의문이 들기 마련이다
그래서 찾아보았더니 이런 글이 있었다.
이에 대한 비밀은, SSE(Streaming SIMD Extensions) 레지스터와 연관이 있습니다.
x86 인텔 CPU의 경우 128비트 크기의 SSE 레지스터를 xmm0 ~ xmm7까지,
64비트인 경우 추가로 xmm8 ~ xmm15를 가지고 있는데,
바로 이 레지스터를 사용하기 때문에 128비트,
즉 16 바이트 크기에 대해서는 레지스터 하나로 처리할 수 있어 구조체의 권장 크기가 된 것입니다.
글쓴이 분께선 ".NET Disassembly" 창을 띄워 직접 확인해주셨으니 더 궁금하다면 아래 글을 참고하면 될 것 같다.
나도 화이팅해서 더 깊은 지식을 가진 프로그래머가 되어야지..
참고 출처: www.sysnet.pe.kr/2/0/12620 [성태의 닷넷 이야기]
'프로그래밍 > 공부' 카테고리의 다른 글
렌더링 파이프라인 (0) | 2021.06.18 |
---|---|
2D 메트로베니아 or 자연스러운 진행형 게임에서의 맵 생성 (0) | 2021.05.06 |
어떻게 해야 커플링을 줄일 수 있을까?? (0) | 2021.03.23 |
[C#] enum의 Flag 연산 정리! (0) | 2020.12.22 |
유니티의 Null Check에 관해 (0) | 2020.11.21 |