작성
·
184
답변 2
1
GC가 메모리 정리하는 시점은 딱히 예상하고 정해진 부분이 아니기 때문에
정확히 '어느 정도'라고 얘기하긴 힘듭니다.
다만 전투가 빈번한 게임이라면 중요할 때 예상치 못하게 사소하게 튀는 것도 문제가 될 수 있겠죠.
그리고 애시당초 C++과 C#을 비교하면
아무리 C#이 좋아졌다 하더라도 통계적으로 약 25%의 속도 차이가 있습니다.
MMO와 같이 퍼포먼스가 매우 중요한 장르라면 굳이? C#을 선택해야 하는지는 의문이 들겠죠.
어차피 C++도 스마트 포인터 등을 도입하면
메모리 관리 등을 C#처럼 부담없이 할 수 있고
심지어 GC를 사용하지 않도 메모리를 재사용하는 등
최적화 여지는 더 많습니다.
물론 유니티도 C#인데 왜 서버는 안 될까 싶지도 하지만
유니티도 핵심 코어는 당연히 C++로 만들었습니다.
마찬가지로 실제 C# 서버로 진행하는 MMO 프로젝트도 더러 있지만
핵심 코어는 C++로 만들고, 윗 부분만 C#으로 만들어서 섞는 경우가 더 많습니다.
다만 이런 이유는 동접 부담이 심한 MMO에나 해당하는거고,
MMO가 아닌 장르라고 친다면 개발 속도도 빠르고 안정성도 더 뛰어난 C#도 훌륭한 선택이 될 수 있겠죠. (특히 모바일이라면)
0