Quade wrote:Typically on 32 bit machines, you can fix this by enabling the /3gb switch.
However, it should also be mentioned that there's a good reason why this setting isn't the default, doing this will break some Windows installs (some drivers refuse to load, a few can even cause corruption!) and that some graphics cards won't work properly with it.
In addition there's a small number of programs that breaks, because the memory layout is different even for non-LARGEADDRESSAWARE binaries. Yes, if it breaks the program is doing unsupported things but it's still broken by this change.
Doing this also reduces the available kernel memory space (1GB instead of 2GB) which in turn makes Windows much more vulnerable to programs that either uses a lot of kernel memory or fragment one or both of the kernel heaps. Depending on what programs and drivers you run "kernel memory space exhaustion" can be the leading cause of needing to to reboot even without this switch! Enabling /3GB will make it a lot more likely and a lot more people will be affected, note that Windows itself uses quite a bit of that space there so in reality the non-OS "usable" area is probably reduced by a factor somewhere between 3 and 5, not simply cut in half.
Quade wrote:I'm toying with the idea of removing file mapping altogether. It's an optimization that seems to be causing problems.
On a 64-bit OS it's a viable method but I think it'll make a big difference. With 32-bit binaries I think it's a bad idea except in very special cases when you know the files will always be very small. Theoretically you could switch method depending on size, but I think it's better to just go with regular IO on 32-bit binaries.