- Wed Jan 19, 2011 6:26 pm
#336421
Well to start with, a 32-bit process can only physically address ~4GB of memory (limited by the number of permutations for a 32-bit integer). So on 32-bit Windows, the default upper limit of memory addressing for a single process was originally limited to half that, the idea being that there would be 2GB of address space made available to any given application, with the other 2GB being reserved for Windows and drivers. When an app is compiled as /LARGEADDRESSAWARE, Windows lifts this limitation, and the application is allowed to address a full ~4GB. So in theory, you should be able to handle larger models now, assuming that you have more than 4GB of memory. If you don't, then where the app previously would have shut down due to lack of memory, it will now slow down alot, since Windows will have to start paging memory to disk. Once you reach the 4GB threshold, the application will still run out of memory. Note that this is all in reference to 64-bit Windows; if you are running on 32-bit Windows, you have to opt in to the capability by editing your boot.ini file to include the /3GB switch, which basically tells Windows that it has to fit itself and its drivers into 1GB, thereby allowing applications to use up to 3GB. In my experience, it is possible for a /LARGEADDRESSAWARE application to use up to around 2.7 GB on 32-bit Windows.
Next Limit Team