inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

서버 프레임워크

SocketAsyncEventArgs Pooling

해결된 질문

178

toyboy0113

작성한 질문수 23

0

안녕하세요 강의 참고하면서 서버 만들어 보고 있는데
https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs?view=net-8.0#remarks


해당 문서에서 pooling이 있더라구요 생각해보니 동접이 꽤 많다라고 가정하면(약 3000?) 이 SocketAsyncEventArgs 생성 소멸이 많이 일어난다고 생각했습니다.

그래서 pooling을 한번 만들어보고 있는데 만드는 중에 Dispose를 언제 해줘야 할지 감이 잘 안옵니다.

현재는 Client가 Disconnect될 때 Push하게 되는데 Push에서 poolCount가 3000이 넘으면 이걸 AllClear라는걸로 pool에 있는 SocketAsyncEventArgs를 다 Dispose해주는 상황인데 이렇게하면 3000이 넘기 전까지는 메모리에 계속 남아 있으니 먼가 찜찜합니다.

이런 문제가 있는데 좋은 해결책이 있을까요?
감사합니다!

C# unity mysql MMORPG ef-core asp.net-web-api

답변 1

1

Rookiss

우선 현재 M2 서버에서는
Session 쪽에 제일 많이 사용하는 read/write 관련된 AsyncEventArg를
멤버 변수로 들고 있으면서 계속 재사용합니다. (사실 이게 풀링보다 상위 호환이죠!)
따라서 생각보다 풀링을 적용하더라도 별다른 차이가 일어나지 않을 확률이 높습니다.
Session 생성/소멸은 아주 빈번하게 일어나는 것이 아니기 때문이죠.
풀링을 한다면 차라리 Session을 풀링해서 몇 천개를 미리 만들어놓는 것을 고려할 수는 있겠네요.

 

학습 전 커리큘럼 관련 질문 드립니다

0

112

1

강의 커리큘럼 질문 드립니다

0

62

1

수업질문은 아닌데요^^

0

117

1

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

85

1

선 이동과 히트 판정에 대해 질문 드립니다.

0

91

1

Job Scheduler - Cache locality

0

76

2

MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?

0

190

2

코드 머지와 관련하여.

0

95

1

퀘스트 처리 시 궁금한게 있습니다.

0

116

2

Nagle Algorithm

0

100

1

현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.

0

134

2

ResourceManager에서 Multiple Sprite를 로드하는 방법

0

102

1

M2는 업데이트가 끝난건가요?

0

149

1

Interpolation & Server Tick Frequency

0

172

2

서버에서 디스커넥트되시는분들 JWT 관련 참고하셔요

0

121

1

aws 와 microsoft azure 중 aws 선택하신 이유가 궁금합니다.

0

189

1

강의는 끝인건가요?

0

332

2

아이템 강화 테이블 관련

0

226

2

강의 관련 질문 드립니다.

0

238

1

리니지1의 이동 질문

0

402

2

버그에대한 썰

0

132

1

포탈 프로젝트에 서버 코드에 에러가 뜨네요

0

139

1

아이템 수량에 관해서 질문입니다.

0

143

1

퀘스트 관련 질문 드립니다.

0

144

1