Some of you probably have seen this error in your SW program when you try to use Hole Wizard feature. Several reasons can cause this:
- mdb file is corrupted,
- mdb location is incorrect,
- not enough permission to access the mdb file,
- DLL not registered, etc.
These are not the main discussion point in this article. The focus here is to talk about a computer that is indeed running out of memory when attempting to activate the Hole Wizard command.
How do you know if the computer is really low on memory?
When you first start SW, open a simple model, and you can use Hole Wizard, but once some large assemblies are loaded, you find out that you get the error message when you go to use the Hole Wizard —-> it is most likely the computer is actually low on memory.
In the tests/benchmarking I am going to show below, you will see the errors happen only on 32-bit machines.
|Windows XP 32bit
|Windows XP 64bit
|Windows 7 32bit
|Windows 7 64bit
I didn’t put the rest of the hardware specs in the table because they do not impact this test.
The memory monitoring program I am using is call VMMAP (http://technet.microsoft.com/en-us/sysinternals/dd535533).
The default task manager from Windows is not reporting the memory usage we need to look at.
For the large model which I will open, I created multiple instances of the same model with different names, so I can open them one by one to increase memory usage.
For Hole Wizard command to activate, ~200,000 KB of memory is required.
In the tests, I will load SW without any add-ins, and load the large model repeatedly while I monitor the memory. If the available memory is below 200,000 KB, I will test if Hole Wizard works or not. The process will be repeated for all four platforms.
2 instances of the model are opened. The red circled number is the total memory utilized by SW. The green circled number on the bottom right is the free memory, which should be more than 200,000 KB in order to activate Hole Wizard command.
In this case, the free memory is only 62,888 KB. When I tried using Hole Wizard, the error indeed popped up.
5 instances of the same model are opened. At this time, my computer is very slow because the virtual memory is being utilized to open the files. The total memory is 4,795,828 KB (circled red), and I still have tons of memory available (circled green). I tested the Hole Wizard, and there is no error at all.
4 instances are opened, and then the free memory dropped below 200,000 KB, which caused the Hole Wizard to fail. From here we can see that Windows 7 32bit performs better than Windows XP 32bit in terms of handling large memory loading.
6 instances are loaded and no problem with Hole Wizard. Again computer is slow because of virtual memory.
So…all operating systems have 4 GB of RAM, why are the 32bit machines having problems?
This is the limitation of 32bit OS. By definition, 32-bit processor uses 32bits to refer to the location of each byte of memory 2^32 = 4.2 billion, so which is 4 GB. Each Windows application has 4 GB of virtual memory space. By default, half (2 GB) is dedicated to kernel usage, and the other half is left available for application usage. If large files are loaded in the application and the memory usage is getting close to 2 GB, well..we have a problem.
For 64bit systems, the limitation is 2^64 = 18 quintillion => 16 EB (1 EB = 1,073,741,824 GB – yeah, I Googled it…)
We most likely won’t face this limitation any time soon (maybe in a few decades).
Here is a list of recommendations for 32bit systems..
1. Turn on 3GB switch.
[DISCLAIMER: Javelin is not responsible for system problems resulting from the use of the following links. Apply at your own risk. It’s recommended to have an IT professional perform this.]
This will allocate 3 GB of memory to the application usage. If you experience instability after the switch is activated, please disable it as this setting has been known to cause problems particularly if you have a video card installed with 768 MB+ of on-board memory.
2. Load Toolbox/Hole Wizard at the beginning of SW session.
For users who have SW Professional or Premium, loading Toolbox at startup will force SW to occupy an additional 200,00 KB of memory in the system. Since it’s already loaded, out of memory error will not pop up. For users who only have SW Standard, if Hole Wizard command is used at the beginning of the SW session, the module is loaded and the memory is held for a certain amount of time. It then will be unloaded and eventually out of memory error will pop up the next time you execute the Hole Wizard command. This is why people say Hole Wizard tool seems to only work for an hour or so, and then the error suddenly shows up.
Why doesn’t SW keep the module loaded at all time after it’s initially activated? Well this is a very common practice in memory management in almost all major software packages – cache it in case the user needs it again so it loads faster and then release it if no longer in use. If a SW session keeps all utilized memory, believe me, out of memory errors would be popping up all the time.
3. Open models in lightweight or SpeedPak mode.
All of the above suggestions are short term solutions. If you still run into the error message, you should consider changing the OS to 64bit. WinXP 64bit is old technology. I STRONGLY recommend Win7 64bit which is seeing a very high adoption rate and is now the mainstream choice by IT and engineering professionals.
Certified SOLIDWORKS Services available from Javelin
Javelin can help you to: