I am getting an Out Of Memory exception in my c# application when the memory usage for the application goes over about 1.3GB.
I had this same problem on a 32-bit machine with 3gb of memory and it made sense back then, but now I upgraded the hardware to a 64-bit machine with 16GB memory with the high - end motherboard and RAM but the Out Of Memory exception still occurs after 1.3GB!
I know that there are no single objects over 2GB and 1.3 is less the 2GB anyway, so the in-built MS 2GB limit on a single object is not likely to be the problem...
It seems like there is a windows kill-switch of some sort when an app reaches a certain memory usage threshold... Then there should be a way to configure this is in the registry perhaps?
Any help will be greatly appreciated!
There is no difference until you compile to same target architecture. I suppose you are compiling for
32 bit architecture in both cases.
It's worth mentioning that
OutOfMemoryException can also be raised if you get
2GB of memory allocated by a single collection in CLR (say
List<T>) on both architectures
To be able to benefit from memory goodness on
64 bit architecture, you have to compile your code targeting
64 bit architecture. After that, naturally, your binary will run only on
64 bit, but will benefit from possibility having more space available in RAM.