Obiekty GDI służą do rysowania elementów w obszarze graficznym w wielu programach, również w SOLIDWORKS. Przy otwarciu każdego nowego dokumentu SOLIDWORKS rezerwuje kolejne elementy GDI. Od wersji 2011 SP4 przy zamknięciu dokumentu zasoby zostają zwolnione. Zdarza się jednak, że obiekty nie są czyszczone a ich liczba w długim procesie działania SOLIDWORKS drastycznie wzrasta. W momencie, gdy liczba wykorzystanych obiektów przez proces SLDWORKS.exe zacznie zbliżać się do 10000, dostaniemy odpowiedni komunikat o niskich zasobach SOLIDWORKS.
Jak sprawdzić aktualną wartość obiektów GDI i zapobiegać przedstawionym sytuacjom w przyszłości?
W pierwszym kroku należy przejść do Menadżera zadań (skrót CTRL+SHIFT+ESC) na zakładkę Procesy. Z paska menu należy wybrać Widok – Wybierz kolumny, znaleźć i zaznaczyć Obiekty GDI.
Zasoby nie są zwalniane głównie w momencie, gdy z poziomu złożenia otwierany jest dokument części i za chwilę zamykany. Jeśli wartość jest duża i zbliża się do 10000 najlepiej ponownie uruchomić SOLIDWORKS, aby w szybki sposób zwolnić zasoby całego procesu SOLIDWORKS. Drugi sposób uwzględnia wykorzystanie ustawień Windows zawartych w rejestrze w celu zmiany limitów.
Aby tego dokonać należy:.
Uruchomić Edytor Rejestru (w menu start wpisać regedit).
Przejść do lokalizacji
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\
Kliknąć prawym przyciskiem myszy na kluczu GDIProcessHandleQuota i wybrać Modyfikuj
W oknie zmienić wartość na 30000 przy zaznaczeniu opcji Dziesiętny.
Analogicznie warto zmienić wartość klucza USERProcessHandleQuota na wartość 14000.
Wartości jakie można podać dla obu kluczy to:
256 – 65536 dla GDIProcessHandleQuota
200 – 18000 dla USERProcessHandleQuota
Ustawienie wartości tych kluczy na maksymalne jest niezalecane ze względu na to, że może to prowadzić do niestabilności całego systemu Windows. Zmiany w edytorze rejestru należy wykonywać bardzo ostrożnie, nieumiejętne wykorzystanie edytora rejestru prowadzić może do uszkodzenia systemu Windows, za co nie odpowiadamy.