Не зависит ли от того, сколько у вас оперативной памяти?
Теоретически, процесс x64 может выделять ОЗУ (etabytes?) ОЗУ, я думаю - то есть, МНОГО. Но если вы это сделаете, ваша машина должна начать пейджинг как сумасшедшая и вообще умереть.
В 32-битном режиме все было иначе, так как вы не могли выделить больше 1 ГБ ОЗУ в ЛЮБОМ процессе в Windows (да, есть способы обойти это, но это не красиво). На практике это примерно 7-800 мг на процесс .NET, так как .NET зарезервировал некоторое пространство.
В любом случае, в 32-разрядной версии самое большее, что вы можете использовать, - это 3 ГБ - ОС резервирует для себя 1 ГБ виртуального пространства.
В 64 битах это должно быть 2 ^ 64, что является большим числом, но http://en.wikipedia.org/wiki/X86-64 говорит, что это 256 ТБ виртуального пространства и 1 ТБ РЕАЛЬНОЙ ОЗУ. В любом случае, это намного больше, чем у вас, вероятно, на вашем компьютере, поэтому он попадет в файл подкачки.
с 64-разрядной ОС и 64-разрядной средой выполнения,
Приложения на базе .NET 2.0 теперь могут
использовать в 500 раз больше памяти для данных
такие как серверные кеши.
Это тоже хорошая информация http://www.theserverside.net/tt/articles/showarticle.tss?id=NET2BMNov64Bit
Кстати, если вы работаете на x64-машине (то есть на x64-машине + x64-ОС), компиляция для AnyCPU и x64 делает то же самое - он работает в режиме x64. Разница лишь в том, что вы используете AnyCPU vrs x86:
- x64 OS / .NET, AnyCpu: x64 app
- x64 OS / .NET, x64: приложение x64
x64 OS / .NET, x32: x32 приложение (x64 .NET Framework как установленная версия Fx ОБА x32 и x64)
x32 OS / NET, AnyCPU: приложение x32
- x32 OS / .NET, x64: КРЫШКА И ОЖОГ РЕБЕНКА! (на самом деле, он просто изящно умирает)
- x32 OS / .NET, x32: приложение x32.