1. Home
  2. Knowledge Base
  3. Software Resources
  4. GDI Objects Leaking or System Resources Low?

GDI Objects Leaking or System Resources Low?

Have you ever seen this annoying error appear in the corner of your screen? It’s most likely means that your GDI Objects are leaking or your system resources are running low. This blog is for those users working in SOLIDWORKS that are plagued by this message:

Warning: SOLIDWORKS System Resources Running Low or Warning: Available system memory is Critically Low

You can usually spot this issue, besides your applications crashing, by opening up the Task Manager, going to the Details tab, right click the columns, and click “Select Columns”. From this list you should be able to choose GDI objects and view them in the new column.

Here’s a brief explanation of GDI Objects and why this could cause crashing on your machine.

GDI Object Limits

GDI Objects (Graphics Device Interface) is a core windows component responsible for representing graphical elements and sending them to devices such as printers or monitors.

Every window or application that is open uses GDI Objects, which is why every application has this available in the GDI Objects column in the Task Manager. Here is the catch – there is a default limit set by Windows for any single process. This limit is 10,000 GDI objects. If your application GDI Objects exceeds this amount, that process is likely to crash.

This is also what triggers the error for low system resources. Currently the system wide GDI Objects are limited to a max of 65,536, and the maximum for a single process is 16,384.

You may ask, why is the process reaching over 10k? It’s possibly an out-of-date graphics driver or possibly a GDI leak. A GDI leak is usually caused when after an application is closed and not all of the GDI handles are released. So, even if you open a new session in SOLIDWORKS, it will continue to ramp up the amount of GDI objects it’s using until it reaches the default limit of 10k GDI objects and crashes.

Suggested Solution:

Change the Registry default limit set via Windows

This solution will involve editing the Windows Registry.

Disclaimer: Modifying the registry can cause irreversible problems that may require you to reinstall your OS. Use the information provided at your own risk.

As mentioned above, Windows default sets the GDI Objects limit for a single process to be 10,000. However, the maximum allowed is 16,384. By increasing this limit in the registry, it will give any given application more room to breathe.

  1. Open Regedit (Type “regedit” in the search bar in the bottom left of your desktop screen)
  2. Locate to the key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
  3. Right click on the “GDIProcessHandleQuota” and click Edit.
  4. Change the registry key to the maximum process limit 16,384, set the BASE to DECIMAL.
  5. Follow steps 1-4 again for this key as well: HKey_Local_Machine\SOFTWARE\Wow6432Node\Microsoft\WindowsNT\CurrentVersion\Windows

Virtual Memory

Another possible cause for insufficient system memory is due to virtual memory of Windows being overloaded.

Virtual memory, also known as Page File, is a memory combination of RAM and a section of your hard drive disk. Whenever your system runs out of physical RAM, Windows will make use of the virtual memory to temporarily store files and go back to the physical RAM when it is freed up.

By default, your virtual memory (page file) is managed by Windows, but you can again customize the size that is allowed! Note that typically the maximum size of the paging file should be two times the amount of physical RAM installed on the machine.

Suggested Solution:

How to set custom sized virtual memory

  1. Search for System (from the search bar or through the Control Panel)> Advanced System Settings > “Advanced” tab > Settings.
  2. Advanced tab > Change.
  3. Uncheck “automatically manage paging file size for all drives”
  4. Choose the Drive you would like to utilize Virtual Memory on.
  5. Choose Custom size button
  6. Enter the Initial size value of two times the amount of physical RAM installed in your system (Example: If you have 16GB RAM type in 32000MB.)
  7. Enter Maximum size value same as the initial size.
  8. Press “Set”
  9. Restart your workstation.

Having A Technical Issue With Your Software?

Our Team Will Work With You Until Any And All Problems Are Resolved

Was this article helpful?

Related Articles

Need Support?

Can't find the answer you're looking for?
Contact Support