Making sure 3ds Max can use all the memory in a machine on 32bit Windows

By - - 3ds Max

How much memory a 32bit application can access

By default a 32bit application on WIndows can allocate up to 2Gb of memory. If it has allocated 2Gb and needs more it will fail as it's not possible to access more.

Application can be compiled with a flag called LARGEADDRESSAWARE. Depending on the operating system configuration such an application can access up to 3Gb on 32bit Windows. An yes, 3ds Max has been compiled with this flag (otherwise there wouldn't have been much of of a point writing this post)..

As an aside: when you run 32bit 3ds Max on 64bit Windows you can use up to 4Gb. If you need to access more you'll have to use the 64bit version, in which case the limit is how much memory you can plug in the motherboard.

 

The 3GB and USERVA switches (Windows XP)

There are two operating system switches that changes how memory is used, these can be set in the boot.ini file:

  • /3GB : change the memory allocation so that up to 3Gb is available to applications 
  • /USERVA=xxxx : adjust how much memory an application can actually use (between 2Gb and 3Gb).

See the link 'How to set the 3GB in boot.ini on Windows XP' for info how to set these switches.

 

SetIncreaseUserVa (Windows Vista and later)

On Windows Vista and Windows 7 there is no boot.ini file. You can use the BCDEDIT command to set the SetIncreaseUserVa switch (same as the USERVA switch in the boot.ini), there is no need to set 3GB switch. For details see the link 'Using BCEDIT to set SetIncreaseUserVa on Windows Vista and later'.

 

Should you only use it if you have more than 2Gb of memory installed in the machine?

No, even if you have less than 3Gb of physical memory in the machine it may make sense to use these switches: not all memory allocated by 3ds Max is used all the time, so that would be paged out to disk. And if it just needs a little bit more memory than 2Gb, without the /3GB switch it will fail, with it will continue. Performance may not be great if it needs to swap to disk, but that's still better than not being able to do the render. If you see the machine swap a lot to disk you may want to consider adding more memory. 

 

Pitfalls

Actually there is only one... and it can be a nasty one if you're not prepared, although it doesn't happen on all machines depending of graphics cards, drivers etc..To be safe you may wish to check with you IT people before trying this out.

The issue can be that by using the /3GB switch there isn't enough memory left for the kernel in which case your machine won't boot or becomes extremely slow. I've had this in the past with Windows XP, the solution is to also use the /USERVA setting to give a little bit of memory back to the kernel. On XP the easiest thing to do is to create additional entries in the boot.ini: one with just /3GB added, then a couple with the USERVA=2800, USERVA=2900 and USERVA=3000. You start by rebooting and trying the one with just the /3GB entry, if that works: great! If not you can reboot and try the different USERVA values until you find one that works for you. If it really doesn't work you still have the original entries in the file.

The important point being that you don't change the original entry ... that will be your life saver if the system won't boot when using the entries you've added.

Unfortunately i don't have much information how you'd create multiple entries in Windows Vista / WIndows 7 using BCDEDIT, the command line options in DCDEDIT indicate that you can use /copy to create a copy for a specified boot entry. Like with the boot.ini you really want to keep a entry that will let you boot into Windows in case the values you've used don't work!

 

Links

 

Posted By
Published In
Tags
  • 3ds Max
  • Tips and Tricks
4 Comments
To post a comment please login or register
| 7 years ago
nice.... thanks a lot for the info
| 8 years ago
I think that the XBR diet was a great step in the right direction. 3ds Max could definitely benefit from some “caloric memory reduction”. However, like any diet there is a certain point of diminishing results. Even if the team was to tweak and tweak the memory footprint, there is only so much you can do before you end up sacrificing something more important like performance, expandability, flexibility or usability. Another thing to take into consideration when looking at memory allocation to applications like 3ds Max is operating systems. Operating systems like Win7 are much more efficient with the application memory space than Win XP. Win7 might have more memory loaded at boot and idle compared to Win XP, but it will more dynamically and allocate the memory that it uses and best of all, give it back after an application has used it. Win XP will not do this very effectively or efficiently. In this case, efficiency is a relative term, e.g. quality over quantity.
| 8 years ago
But I still cannot understand, why each higher version eating more and more recourse of PC.(and the main changes is in interface :D ).i think in the 2015 version 32bit OS will be "out of game".. :)
| 8 years ago
I know I'm going to incur the wrath of many users, but here it is - switch to 64bit Windows. This completely alleviates the 3GB switch. While it (the 3GB switch) can help, it has proven more trouble than it is worth for us in the past. 64bit versions of Windows can run all your 32bit apps at little or no performance hit. It does have issues with older legacy devices, but this is mostly devices that are very legacy. Some apps will cause problems, but really only those that have a system requirement of Win95 or WinNT (need I say more). 64bit applications really perform nicely compared to their 32bit equivalents, case in point, 3ds Max. Many of the Adobe CS5 applications are now 64bit only and as a result load and perform much better than the 32bit versions in the CS4 packages. This is primarily due to the fact that Adobe wiped the slate clean and started with a 64bit only codebase. It is amazing how limiting it is for a developer to write a high performance application like 3ds Max for 32 and 64bit. You cannot develop to the nth degree as 64bit would allow since you must also take the very limited 32bit space into consideration. Here is a nifty article on why you should go with 64bit Windows over 32: http://arstechnica.com/ask-ars/2011/04/ask-ars-finally-upgrading-to-windows-7should-i-go-64-bit.ars In any case, the 3GB switch is a descent stopgap measure to memory issues with 3ds Max but consider the advantage of upgrading to 64bit. Food for thought…
*Save $66 per month on Autodesk's Suggested Retail Price (SRP) when purchasing 1 year term 3ds Max or Maya subscription.