티스토리 뷰

컴퓨터활용/티맥스

Windows Handler 늘리기

호주 멜번초이 2008.04.25 22:00
가끔 이것 저것 많이 열고 스튜디오 작업 하다 보면 죽는데여.. 로그에 No more handler라고하니.. 핸들러를 늘려주면 덜 죽겠죠.. 제 ( 티맥스소프트. 정세윤 ) 가 찾아본 바로는HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota 에 정해진 만큼 이 제한입니다.
제컴은 10000개로 되어 있었습니다. 아마도 10000개 이상의 handler를 열면 거기서 죽는 것 같습니다. 따라서 이를 20000정도로 늘려주면 안죽을 것 같은데... 일단 테스트를 해보도록 하죠.. 윈도우 시작버튼 -> 실행 -> regedit -> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota 갯수를 10진수로 20000만으로 늘려준다. 테스트 해봐서 정말로 잘 안죽는다 싶으면 개발자 공지 하죠..

============ 그림으로 설명 추가 ===================
사용자 삽입 이미지
사용자 삽입 이미지
   USERProcessHandleQuota 이항목을 20000으로 잡는다...


========================= 이하 MSND 본문 ===================================

User Objects

User interface objects support only one handle per object. Processes cannot inherit or duplicate handles to user objects. Processes in one session cannot reference a user handle in another session. There is a theoretical limit of 65,536 user handles per session. However, the maximum number of user handles that can be opened per session is usually lower, since it is affected by available memory. There is also a default per-process limit of user handles. To change this limit, set the following registry value: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Windows\USERProcessHandleQuota This value can be set to a number between 200 and 18,000.

Handles to User Objects

Handles to user objects are public to all processes. That is, any process can use the user object handle, provided that the process has security access to the object. In the following illustration, an application creates a window object. The CreateWindow function creates the window object and returns an object handle.

사용자 삽입 이미지


After the window object has been created, the application can use the window handle to display or change the window. The handle remains valid until the window object is destroyed. In the next illustration, the application destroys the window object. The DestroyWindow function removes the window object from memory, which invalidates the window handle.

사용자 삽입 이미지

Managing User Objects

The following table lists the user objects, along with each object's creator and destroyer functions. The creator functions either create the object and an object handle or simply return the existing object handle. The destroyer functions remove the object from memory, which invalidates the object handle.
댓글
댓글쓰기 폼