C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[6650] .Net에서의 서버 프로그래밍...
Dante H [h64d5791] 1268 읽음    2003-01-24 01:51
요즘 잼있는 작업을 하고 있습니다.

다름이 아닌 Winsock2기반의 IOCP로 제작된 모듈을 닷넷에 적용을 시켜보는것인데 아주 흥미롭습니다. 일단 제작된 서버가 온라인 게임서버인 관계로 상당한 네트웍 부하와 CPU 점유율에 대해 민감
하므로 상당히 걱정되면서도 기대되는 작업이었습니다.

닷넷에 적용 시키기 위해서 MC++(Managed C++)을 사용했고, 덕분의 수많은 닷넷 라이브러리를
사용할 수 있었습니다.

닷넷쪽을 사용하면서 느낀 편리함은 아래 몇가지가 되는군요..

1. __gc 클래스 사용으로 편리해진 가비지 컬렉션

서버쪽에서는 큐나 스택을 많이 쓰는 관계로 개체의 생성 삭제에 대해서 상당히 많은 부담이
갑니다. 생성, 삭제 타임의 CPU점유율이나 시간이 문제가 된다는거죠.. 그래서 미리 다 만들어
놓는 풀 방식으로 가기도 하지만 대부분이 컬렉션을 해 주게됩니다. 이 부분 상당히 복잡하게
코딩을 해 주어야 하는데 .Net에서는 가비지 컬렉션이 클래스 단위로 처리할 수 있게 되어있더군요
하지만 일명 관리되는 메모리와 관리되지 않는 메모리와의 호환성 문제에서 약간 어려운면이...

2. 기존의 ThreadPool 및 Overlapped의 기본 지원

윈도우에서는 힘들게 접근해야 했던 부분이 쉽게 지원이 됩니다. 즉 일반적인 닷넷에서의 소켓은
(비동기 소켓)단순이 콜백만으로 모든 작업을 처리해 줍니다. 예전에 Overlapped 구조체와의
전쟁은 눈씼고 봐도 찾을 수 없을정도로 래핑이 되어있습니다. 그리고 닷넷에서는 모든 메시지는
ThreadPool을 통해 들어갔다 나왔다를 하기때문에 이 부분도 Winsock2 기반으로 하는 IOCP에서
처럼 따로 ThreadPool이나 BindIoCompletionCallback로 처리를 해 줄 필요가 없어졌습니다.

3. 쉬운 도움말 및 다양한 예제

정말 행복하게 제가 비절스튜디오 닷넷 한글판을 써서인지 필요한 라이브러리 도움말이 모조리
한글화 되어 있더군요..^^ 정말 행복한 일이였습니다. 그거 이외에도 정말 도움말만으로 모든
것이 해결될 정도로 풍부한 예제도 지원했습니다.

편리함 뒤에 성능의 저하가 있다고 했던가...

여하튼 우여곡절끝에 제가 찾은 최적의 방법으로 에코서버를 제작, 기존에 제작했던 IOCP 에코와
성능 비교에 들어갔습니다. 그런데 역시 좀 더 성능이 안나오더군요^^;;

CPU점유율에서 2000접속시 10% 가까이 되는 차이를 보입니다.

물론 IOCP를 제외한 다른 윈도 소켓 기법 보다는 뛰어나지만 역시 IOCP보다는....흐흐흐

하지만 프로토콜을 모두 달고, 실제 처리를 하게 되면 GC의 강력함으로 역전이 될수 있을지도
모르겠군요..

앞으로 시간날때 마다 조금씩 더 올리겠습니다.

그럼 이만
조해진 [mastercho]   2003-01-24 02:16 X
제가 서버쪽에 관심이 많은데 좀  더 많은 정보좀 올려주세요   ~~
조해진 [mastercho]   2003-01-24 04:22 X
참 그리고 MSDN이 한글화가 되었나요??  다들 아니라고 하는데 그부분만 되었나?
조해진 [mastercho]   2003-01-24 04:22 X
꼭좀 답변 부탁드립니다
미스콜이아 [catchv]   2003-01-24 11:11 X
.NET에 대한 부분은 한글로 되어 있습니다. 기존 API는 여전히 영문
조해진 [mastercho]   2003-01-24 19:45 X
헉 구하고 싶네요 T_T 어케 안되나 .....흑
서주형.무소유 [mancord]   2003-01-24 21:00 X
결국 MS 가 원하는것은 초등학생들도 짤수 있는 것이다.
서주형.무소유 [mancord]   2003-01-24 21:00 X
고로, 맥도날드 의 시스템 처럼 프로그래머도 값싼 단순 노동자에 지나지 않을것이다.
서주형.무소유 [mancord]   2003-01-24 21:01 X
그에 MS 가 바라는 것이다. 그러나 그렇게 되진 않을것이다.
서주형.무소유 [mancord]   2003-01-24 21:02 X
요즘, 가끔식 길을 가거나 지하철을 보면 전광판에 엽기적인 푸른 화면을 볼때가 많다.
서주형.무소유 [mancord]   2003-01-24 21:02 X
메모리 덤프 어쩌구.... 전세계가 푸른 덤프 화면으로 바뀌는날이 오지 않기를 바란다.
조해진 [mastercho]   2003-01-24 22:01 X
주형님 같은분들이 많아서 , 쉽게 그럴게 되진 않을거 같더군요

+ -

관련 글 리스트
6650 .Net에서의 서버 프로그래밍... Dante H 1268 2003/01/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.