C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[179] [팁] 웹서버 어플리케이션의 속도 개선
타락천사 [rain622] 7072 읽음    2001-08-20 15:09
안녕하세여.. 타락임다..^^

흐미, 웹어플나 멀티티어 쪽은 안쓸려구 했었는데 쓰네여....^^;;

웹 서버 확장 기능 애플리케이션을 만드는 경우, TWebApplication.CacheConnections 속성을 이용해서 애플리케이션의 속도를 개선시킬 수 있슴다. 클라이언트가 ISAPI나 NSAPI 애플리케이션에 대한 요정을 보내면 서버는 그 요청을 처리할 새로운 스레드를 생성하며, 따라서 TWebModule의 인스턴스도 새로 생성됨다. 일반적으로, 각각의 스레드는 하나의 연결에 대해서 실행되며, 그 연결이 닫히면 그 스레드는 파괴되며, 따라서 TWebModule 인스턴스도 파괴됨다.

반면, CacheConnections를 True로 하면 연결이 닫혀도 스레드가 캐쉬에 보존되며, 다음 요청이 들어오면 캐시에 있는 스레드가 재사용됨다. 캐시에 더 이상 남아있는 스레드가 없는 경우에만 새로운 스레드가 생성됨다. 스레드나 객체를 매번 생성하고 파괴한다는 것은 상당항 시간 낭비이므로 캐시에 스레드를 보존하고 재사용 하도록 하면 서버 전체의 수행 성능이 향상됨다. 그러나 캐시에 스레드를 보존할 때 주의할 점은 초기화 작업을 수행하는 TWebModule->OnCreate가 단 한번만 수행된다는 점임다. 즉, 캐시에 보존된 스레드의 TWebModule이 다음 요청을 처리할 때에는 이전 요청을 처리할 때 설정된 속성이나 내부 필드값들이 그대로 남아 있게 되는 것임다. 따라서, OnCreate 이벤트 처리 메소드에서 작업에 필요한 변수나 속성값을 초기화해야 한다면 캐시에 스레드를 보존하는 방식은 피하는 것이 좋슴다.

현제 캐시에서 놀고 있는 연결의 수는 TWebApplication->InactiveCount 속성에 담겨 있슴다.

반대로 현제 활성화되어 있는 연결의 수는 TWebApplication->ActiveCount 속성에 담겨 있슴다. 그리고 TWebApplication->MaxConnections 속성은 웹 서버 확장 기능이 동시에 처리할 수 있는 최대 연결 개수임다.

ActiveCount 가 MaxConnections 보다 커지면 예외가 발생함다.

즐푸하세여..

타락천사...^^

+ -

관련 글 리스트
179 [팁] 웹서버 어플리케이션의 속도 개선 타락천사 7072 2001/08/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.