일단 C#을 빠는놈은 C++로 서버를 짜본적도 능력도 없는놈이다
반면 C++을 하는놈들은 C#으로도 짠다 그게 기본이다
C++을 서버로 쓰는 이유는 대표적으로 비용 문제가 있겠다
첫째로 서버는 기본적으로 응답속도가 빨라야 된다
어떤 연산당 속도제한이 붙어있다고 봐도 무방하다
일단 거기서 C#은 손해를 많이본다 상상이상으로 걸림돌이 된다
두번째로는 C#은 제공하지 않는 기능에 대해선 세부 제어 능력이 많이 떨어진다
운영체제와 밀접한 연산을 반드시 사용해야될 일이 있다 거기서 엄청나게 많이 밀린다.
C#을 기본 베이스를 하게되면 결국 C++ DLL을 로딩하게 되는 좃같은 일을 꼭 해야된다
셋째로 가비지 컬렉터다 요놈 상당히 좆같다 요놈쓰고 게임서버 짜는건 그냥 좆망겜이오 홍보하는거고
결국 꺼야되는데 그냥 C#을 안쓰는게 맞다
넷째로 서버는 돈이다
돈이 연산당 조금 들어가는 수준이 아니라 이 경계가 제법 애매해서 큰 문제다
C#으로 짜면 연산속도 한 두배 손해보고 두배 느리다고 봐도 부족할정도로 구리다
팩트로 메이저급 게임 서버중에 C#으로 짠 서버 하나없다
c# 서버가 느리긴 하지 그래도 ㄹㅇ 좆같이 만든 c++ 서버 보다는 빠름
Node.js가 V8을 택한 이유.txt네
해당 댓글은 삭제되었습니다.
그러니까 니 회사 현실이라고
네이버 검색, 동영상 같은 데는 C++ 아니면 서버비용 감당 못 해
어휴 시팔 예 하나 들어준다 300명이 맵하나에 있고 그 데이터를 동시처리 해야될 상황일때, 그 연산을 5ms 안에 처리해야되서 어셈블리어까지 쳐 써야되는 상황인데 니말대로 C#을 쓰면 한 20ms 나온다 치자 그1 상황 하나때문에 CPU나 서버 자체를 하나더 증설해야됨
그런게 하나가 아니라 여기저기 널려 있고 그걸 무시하면 그냥 좆대는 서버 되는거지 그냥
FANNG급 기업들도 C++ 애증의 언어라며 못 버린댔어. golang도 만들고 이것저것 시도해보다 C++ 버리는게 결국 불가능하니까 지들이 그냥 C++ 표준위원회에 참여해서 C++ 스펙을 입맛에 맞게 고치고 있지 요즘
어휴 내가 단순화된 계산 예를 들었냐? OS랑 밀접한 연산을 예를 들었지 그리고 C가 아니라 어셈블리어야
병목은 CPU 연산보다는 메모리 이슈가 클걸. 무슨 언어로 짜든 컴파일할 때 최적화 하고나면 CPU 연산량은 비슷비슷해져. 근데 정말 빠른 연산에선 mem alloc까지 신경써야 하고, 이쪽이 오히려 병목이 될 때가 많아. memory realloc이랑 I/O가 속도의 주적이야. I/O 문제 해결하려고 async non-blocking이 대세가 되었고, memory realloc 줄이려면 low level 언어로 마이크로 컨트롤 해야해. 이건 좀 어쩔 수 없어.
속도차이 존나 나는데 ㅋㅋ
친구야 어셈블리어로 서버를 짜는게 아니라 특정 모듈을 어셈블리어로 짜는거야 C#만 쳐하니까 상상이 안가지?
미안한데 C#도 너보단 잘할듯 그리고 나 20대임
와 엄청 잘하시나보다 깃헙 주소 좀 ㅎ
깃헙 안써요~ㅎ
마영전서버가 c#으로돼있는데 나름 굴러가던데
닭 잡는데 소 잡는 칼 쓸 필욘 없지. 정답은 없음 서비스 상황과 개발진 상황을 고려해서 맞는 언어 선택하면 될 일임
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharpcore-gpp.html
c#도
생각보다는 빠르다 CoreRT 같은거 쓰면 더 빨라지고
너가 아는 2010년도의 c#이 아니다 현실을 직시해라
솔직히 서버는 코어 부분만 빠르면 된다 듀랑고 서버가 python으로 돌아간 이유가 다 있음 지금 당장 .net core 로 만들어진 서버 프레임워크 하나 돌려보면 초당 1천만 io는 그냥 나온다
메모리 할당 부분도 gc 돌면 느려지는거 다 안다 그래서 ConcurrentBag 이랑 Span 이용해서 메모리풀 만들고 메모리 반환 안하고 재사용 하고 그런다 언어가 아니라 사용하는 사람 문제지 언어가지고 능력없다 타령하지 마라
그니까 걍 안쓴다고 프레임워크 기반의 특유한 좆단점이 있는데 GC 끄고 풀 만들어서 쓸정도면 왜 C#쓰는지 내가 묻고싶네
C++을 못하니까 쓰는거아냐
c# 개발자가 싸니까 쓰지 솔직히 c#으로 서버 만드는거나 c++로 만드는거나 다른점 별로 없지 c++ 사용해도 솔직히 최적화 하려고 메모리풀 만들고 TLS 사용해서 메모리 관리하고 다 하니까 큰 노력 없이 속도 차이 별로 없는 c# 쓴다는거지. 에초에 위에서 말한 기능들이 다 서버 프레임워크에 들어가 있거든 그리고 c++ 못할 수준이면 어짜피 c# 가서도 하는거 별 다를꺼 없음
C++ 생산성이 워낙 떨어져서 병목인 부분만 C++로 짜고 나머지 control flow는 생산성 높은 언어로 짜는걸 권장할 텐데 흠
오래 된 글이지만 지나가는 길에 조금 불편해서.. 잠깐 글 쓰고 지나갈게요.
글쓴이(222.107)님이 말하는 의미가 어떤건지 이해는 되는데 C++로 짤 능력이 없기 때문에 안하는게 아니라는 점만 말하고 싶어요. 무식한 사람이 사상을 가지면 위험하다고... 게임은 서버만 가지고 모든게 이뤄지지 않거든요. 말씀하시는거 보면 대학 학부생 1~2학년 정도의 수준으로 보이는게 눈에 조금 보입니다.. 우선, C#의 메이저 게임은 대표적으로 마비노기:영웅전이 있습니다. C#에서의 문제가 GC 컨트롤 부재로 인한 C++보다 15% 낮은 성능 효율을 말하는데 서버 규모나 통신 모듈이 어떻게 아키텍처 설계되어 있냐에 따라 많이 상이합니다. C++로 만들어서 더 구리게 나오는 경우도 많아요 ㅎㅎ 글쓴이분이 이런 지식이 깊게 없고 너무 얇게 있기 때문에 자세히 모르는것에 대해 충분히 이해합니다.
대규모 MMORPG를 가정하면 실시간 처리 연산 능력과 세이프티를 위해 boost.asio를 도입한 게임 회사들이 많아요. 현업에서 한번도 일을 해보지 않으셨으니 이런 구조를 모르고 무작정 C++이 짱이다 이걸 모르면 실력이 없는거다 라고 일반화 하신게 아닐까 싶습니다. 몇몇 게임 서버들은 플랫폼과 서버사이드 효율성을 중시하여 웹서버 기반으로 나아가는 형태도 있어요 최근에는 aspdotnetcore 성능이 월등히 좋아져서 signalR 비동기 소켓서버를 도입하고 액션 게임을 만들고 있는 회사들도 있는 상황입니다
건설적인 대화로 글쓴이 분이 부족한 지식을 알려드릴 의향이 있습니다.
https://github.com/Shuooang/Winpache
에 가면 제가 만든 VC++ 만든 윈도우 스타일을 고성능 서버가 있으니 쓸분 쓰고, 공부 할분은 공부 하세요. 유투브 영상 보다가 질문 있으면 거기에 댓글로 달면 답해 드릴께요. 안정성, 속도, 구형 윈도우 노트북에서도 성능이 좋고, 다음 버전에는 자체 클러스터링(병렬처리)기능도 됩니다.
꼭 서버한번 만들어본적없는 새기가 입만살아서 나불나불 ㅋㅋ
그래서 실서비스에서 동접 몇 까지 받아보셨나요?? C#은 GC를 비활성화 시키고 사용하더라도 장점은 있습니다. 그리고 최근 환경에 맞추어 모던한 코드 작성 환경 지원하겠다고 이거저거 붙여서 덕지덕지 해놓고 보면 잘못 쓰기도 쉽고 성능도 그만큼 안나오게 됩니다. 구형 명령어 셋을 쓰는데 업데이트 못 치는 상황도 많이 일어나고요.
깃헙 안쓰는게 말이 되나 ㅋㅋㅋㅋ