Если вы работаете в 32-битной Windows, ваш пользовательский процесс сможет адресовать только 2 ГБ памяти по умолчанию (3 ГБ запускается с учетом большого адреса). 2 ГБ используются для всего процесса, поэтому среда выполнения .NET, стандартные библиотеки, резервирование и т. Д. Все берут на себя. По моему опыту, для приложений .NET на 32-битной версии остается около 1,5 ГБ.
Вы можете получить доступ к большему объему памяти с помощью переключателя с большим адресом, но он не предоставляется бесплатно, если вы работаете в 32-битной Windows. Переход на 64-битную Windows позволит вашему 32-битному приложению получить доступ ко всему 32-битному адресному пространству и, таким образом, даст вам 4 ГБ адресуемого пространства.
Недавно я написал запись в блоге с подробностями об использовании памяти для приложений .NET, но, поскольку я веду блог на датском языке, возможно, вы не сможете его прочитать. Однако, если вы хотите посмотреть, ссылка: http://kodehoved.dk/?p=156
Вы также можете найти этот пост в блоге MSDN соответствующим: http://blogs.msdn.com/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx