티스토리 뷰
GDI Handle 누수 감지하기에서 쓴 것처럼 종종 윈도우 어플리케이션에서 GDI Handle 이 새는 경우가 생기는데, 경우에 따라 수정할 때까지 시간을 벌어야 할 때가 있다.(사용자의 컴플레인이 극심한 경우 일단 땜빵해놔야 하기에.. -_-)
GDI Handle 과 관련된 기본설정을 변경하는 방법은 GDI Handle 의 총 사이즈를 변경하는 방법이 있고 GDI Handle 의 총 갯수를 변경하는 방법이 있다. 여기서 주의할건. 둘 다 프로세스 하나에 대한 GDI Handle 의 개수라는 거다.
(GDI Handle 사이즈는 정확히 측정해서 분석을 못해봤지만, 기본 사이즈를 봤을 때, 프로세스 하나에 대한 값이라는 걸 짐작할 수 있다.)
1. GDI Handle 의 메모리 사이즈를 변경하는 방법은 다음과 같다.
regedit 를 실행하고 다음 위치의 값을 열어서 수정하면 된다.
HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/SubSystems/Windows
Windows 의 값은 기본적으로 다음과 같은데, SharedSection 의 값을 변경하면 된다.
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
"1024, 3072, 512" 로 설정되어 있는데, 이중 가운데 3072 가 GDI Handle 의 기본 사이즈이다. 단위는 Mega Byte 이며 이값을 10240 정도로 기본값보다 조금 더 늘려주면 된다.
2. GDI Handle 의 갯수를 변경하는 방법은 다음과 같다.
regedit 를 실행하고 다음 위치의 값을 열어서 수정하면 된다.
HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows/GDIProcessHandleQuota
GDIProcessHandleQuota 의 기본값은 십진수 기준으로 1,0000 인데 이 값을 늘려주면 된다. 최대값은 65536 이라고 msdn 에 나와있지만 실제 테스트를 해보니 GDI Handle 메모리 사이즈와 영향이 있는 것 같다.
어찌되었건 요 값을 좀 더 늘려주고 나면 GDI Handle 누수로 인해 모니터가 허옇게 변한다고 사용자의 무서운 눈치를 조금은 피할 시간적 여유를 얻을 수 있다. -_-;;
덧. 레지스트리를 수정하는 방법이기 때문에. 굉장히 주의를 기울여서 작업해야 하며, 만약 수정하다가 잘못될 경우 본인은 책임지지 못함을 알려드린다... -_-;;;
덧2. 레지스트리를 수정했으니까 재부팅은 필수다.
'개발이야기' 카테고리의 다른 글
PowerShell 이용해서 텍스트파일 인코딩 바꾸기 (1) | 2018.05.25 |
---|---|
logback 이용해서 여러 JVM 에서 하나의 로그파일을 기록하기 (0) | 2018.04.17 |
Microsoft Bluetooth Notebook Mouse 5000 (0) | 2010.04.30 |
WinFlashGuard.exe Warm 제거하기 (0) | 2008.10.20 |
Internet Explorer 7 에서 자기자신 닫아버리기 (0) | 2008.10.17 |
GDI Handle 누수 탐지하기 (2) | 2008.10.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 이미지
- Internet Explorer 7
- JavaScript
- logback
- 할인채
- GDIProcessHandleQuota
- prudent
- CODSTA
- 미투데이
- VMware
- Windows
- WsServerContainer
- 본사
- 웹표준
- Java
- 의왕
- 파생
- hp-ux
- ActiveX
- SharedSection
- coding standard
- TyrusServerContainer
- websocket
- JTest
- qaos.com
- Microsoft
- 채권
- 이표채
- WebLogic
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함