안녕하세요.
몇 가지 질문이 있어서 이렇게 글을 올리게 되었습니다.
먼저, 상황부터 설명을 드리겠습니다.
소켓 컴포넌트를 이용, 서버 프로그램을 만들었는데, 이 프로그램의 최대 접속자 수를 알고 싶습니다.
소켓 컴포넌트는 인디를 상속 받아서 만들었으므로, 멀티 스레딩 소켓이구요..
클라이언트가 한명 붙을 때마다 스레드가 하나씩 생성됩니다.
이제, 이 부분을 공부하다 몇 가지 질문 사항이 나와서 이렇게 질문하게 되었습니다.
1.
어플리케이션에서 (32비트 윈도우 기준으로)최대 2G까지 메모리를 사용할 수 있는 걸로 알고있습니다.
Thread 동적 생성시, 약 2000개 생성이 가능하다는 뜻이라고 봐도 되는겁니까?
(프로젝트 옵션의 링킹 관련에서 Max Stack Size가 Default 1M byte로 가정을 한다면..)
2.
위의 서버 프로그램 옵션의 Max Stack Size를 0.5M Byte로 줄여버린다면, 서버 프로그램 실행에는 문제가 없나요?
또, 서버 프로그램의 프로젝트 옵션에서 줄여버려도, 동적으로 생성되는 Thread 역시 0.5 M Byte로 제한되나요?
3.
이 질문은 조금 당황스러운 질문일 수도 있는데, 궁금해서 여쭤보는 것입니다. (좀 바보같은 질문이긴 한데..)
http://gilgil.co.kr/bbs/view.php?id=lecture&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=513
이걸 보고 생각한건데...
위의 증상(?)이 벌어지는 이유가 조금 자세히 궁금합니다. 접근을 해야 메모리에 올라온다는 개념인거 같은데...
4. (추가)
동적으로 생성된 스레드가 사용하는 스택의 피크 사이즈를 구할 수 있습니까? '-'
최적화를 위해서 적절한 스택 사이즈를 구하고 싶은데, 피크 사이즈를 알고 싶어서요..
스택, 메모리 관련된 부분이 조금 오래 전에 공부한 부분이라 헷갈려서..-.-;; 바보가 되었네요..-_ㅠ