is there difference between max memory 32 bit and 64 bit .net frameworks? I mean: can I allocate more than 2GB memory when writing on 64 bit .net framework?
what is features of 64 bit .net framework? I cant find it on internet.
is there difference between max memory 32 bit and 64 bit .net frameworks? I mean: can I allocate more than 2GB memory when writing on 64 bit .net framework?
what is features of 64 bit .net framework? I cant find it on internet.
From this post, it looks like they removed the max 2GB and you can use all memory available.
x64 has the following pros:
- No 2GB memory limit - you can use all of the memory available.
- Potential for better perf., especially with some double precision math. x64 has a couple of extra registers, and can do some things faster (potentially). I've seen some significant boosts in some highly numerical code, but for most business applications, you won't see a difference.
x64 has the following cons:
- Less than ideal IDE support
- Program takes more memory (object references 2x size)
Looking at Migrating 32-bit Managed Code to 64-bit might be helpful as well.
Yes, you can allocate as much memory as your system will allow before crumpling under the weight - however, arrays (which includes most lists) and strings etc are still limited to 2GB. Note also that since the size of a reference doubles, this means you can only have half as many references in a list. But that is still a lot of references.
The sizes of int
etc don't change, since they are fixed regardless of the platform.
You may also see other oddities - x64 and x86 have some different optimisations in the engine. So please do test - don't just change it to x64 and blindly deploy. Examples here would be tail call and various things surrounding complex cases like volatile
.
In my experience, in practice, the program uses almost twice as much memory on 64 bit system. No other issues so far. (Mine is a set of ~30 windows services crunching some data using an ORM -- hence the many object references).