SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?
루키스님 안녕하세요?
기존 SendBuffer.cs는 메모리 누수 이슈 등으로 삭제하고
새로운 기법을 알려준다고 말씀해주셨는데
그게 최종적으로 ClientSession.cs의 Send()함수가 되는게 맞을까요? (아래 코드블록)
맞다면 Send()가 호출 될 때 마다 버퍼를 새로 생성하기 때문에
SendBuffer.cs의 강점이었던 하나의 거대한 메모리를 사용하면서 버퍼 생성 및 Copy가 줄어드는 이점이 없어진 걸로 이해가 됐는데,
기존의 SendBuffer.cs와 새로운 대체된 Send()의 장단점이 각각 궁금합니다.
ClientSession.cs
public void Send(IMessage packet)
{
string msgName = packet.Descriptor.Name.Replace("_", string.Empty);
MsgId msgId = (MsgId)Enum.Parse(typeof(MsgId), msgName);
ushort size = (ushort)packet.CalculateSize();
byte[] sendBuffer = new byte[size + 4];
Array.Copy(BitConverter.GetBytes((ushort)(size + 4)), 0, sendBuffer, 0, sizeof(ushort));
Array.Copy(BitConverter.GetBytes((ushort)msgId), 0, sendBuffer, 2, sizeof(ushort));
Array.Copy(packet.ToByteArray(), 0, sendBuffer, 4, size);
Send(new ArraySegment<byte>(sendBuffer));
}
Answer 1
MessagePack
0
84
1
본인 플레이어 이동 관련 질문
0
49
1
Part7 Part9 질문이 있습니다.
0
71
1
.
0
116
1
.
0
105
2
게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제
0
91
1
타일 팔레트 깔았는데도 안돼요
0
115
2
2D로 그냥 만들어도 되나요?
0
81
2
지난 강의와 이어지는게 맞을까요?
0
80
2
순환참조 문제로 인해 발생하는 문제는 없을까요?
0
162
2
유니티 클라와 C++서버연동
0
277
2
멀티플레이 테스트 환경 관련 질문입니다
0
207
3
강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!
0
150
2
코드 관련한 몇 가지 질문입니다!
0
153
2
3d 프로젝트 이동 동기화 관련
0
321
4
파트 7 스트레스 테스트 질문 드립니다.
1
189
2
맵 이동 방식
0
133
0
맵 이동 관련해서 질문드립니다.
0
91
1
안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,
0
201
2
안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!
0
159
1
[팁] 2024년 기준 버전 이슈?
0
453
1
지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것
0
333
2
PushAfter 사용 질문
0
189
1
강의중 GameRoom의 참조값에 대해 질문드립니다.
0
241
1

