Starcraft – Is enabling “Large Address Aware” ability for PC games actually beneficial

pcstarcraft-2

I've come across a suggestion for custom-enabling "Large Address Aware" ability for game executables, which as far as I understand, essentially allows 32-bit games to access 64-bit memory space.

http://www.techpowerup.com/forums/threads/large-address-aware.112556/

http://www.pso-world.com/forums/showthread.php?t=199993

Would this suggestion actually benefit game performance, like for Starcraft 2, for example? Is there a way to determine beforehand which games this may or may not help?

Bonus:

And is there risk in doing this for games that multiplay online, as far as possibly getting banned for "cheating"?

Best Answer

To quickly test whether an application is stable when enabling LAA you'd need to have windows allocated memory in reverse to see if the application can handle large memory addresses (int values above 31 bits). The change is done via regedit iirc, but I don't remember the key/value. EDIT: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"AllocationPreference" -- has to be set to top-down allocation so it allocates high addresses first.

Anyways... If the game (probably written in C++) was coded optimally, it won't actually make a difference if you enable LAA in the exe because the programmer(s) would have directly allocated ram into buffers that have a static size at compile time which would be sufficient for all needs. For there to be a benefit of actually having more useable ram with the LAA flag IN AN APPLICATION NOT DESIGNED TO USE LAA, the programmer would've had to have screwed up in their assumptions regarding heap RAM usage and allocation. Or they did something weird that I can't imagine. it's not like Java that has automated heap allocation, and this won't affect memory allocation done on the stack unless they programmers do something very strange.