ArraySegment관련 질문
292
작성한 질문수 35
6분쯤에 ArraySegment가 Struct라서 스택영역에 할당되고 BufferList에 Add할 때 복사되어 전달된다고 설명하셨는데
struct가 스택영역에 할당되려면 몇가지 조건이 있는 것으로 알고 있습니다.
예를들면 16바이트 미만이고 멤버변수로 class가 없어야한다 등등...
그런데 위의 조건과 상관없이 Rookiss님이 설명하신 내용대로 되는 이유가 궁금합니다.
답변 1
9
말씀하신대로 여러가지 고려사항이 있는 것이 맞습니다.
16바이트 미만일 때 struct를 사용하라는 것은
MS의 권장사항에 나와있긴 하지만,
실제로 int 5개로 struct를 만들어 테스트 해봐도 스택영역에 할당되기도 합니다.
(정말 확실히 알려면 unsafe 모드로 포인터 주소를 찾아서 스택을 찾아보면 알 수 있습니다)
C# 에서 Heap/Stack과 관련된 세세한 부분은
C# 스펙이 아닌 CLR의 implementation detail에 해당하고
언어 특성상 특별히 신경쓸 내용이 아니기에 언급한 적은 없지만,
마찬가지로 ArraySegment가 스택이라고 단정짓고 설명한 것도 잘못된 설명이 맞습니다.
배열 영역을 쪼개서 쓰는 것이 중점이었고
Heap/Stack은 지나가다가 나온 얘기였는데
잘못된 부분을 예리하게 짚어주셨네요.
감사합니다!
TLS 질문드립니다.
0
42
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
46
2
Unity Span
0
75
2
XML, Dll 차이점
0
105
2
Session 질문입니다
0
79
1
Write Read 커서 키워드
0
74
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
70
2
네트워크 Send 전담 스레드 배치
0
98
2
UnhandledException 으로 서버 터지는 경우
0
85
2
컨텐츠 단, 엔진 단
0
104
1
질문 있습니다
0
77
2
C# 게임서버 3D MMORPG
0
144
2
유니티6 버전
0
97
2
receive하는 부분과 send하는 부분의 차이
0
133
2
커서의 위치의 중요성
0
103
2
C++ 전혀 모르는데 C# 서버
0
169
2
강의에 질문이 있습니다
0
86
2
멀티스레드 이해도 질문
0
95
1
500 vs 500
0
128
3
OnAcceptHandler 액션 함수
0
61
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
188
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
82
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
105
1
스핀락 질문.
0
109
2





