В чем разница между 32-битной и 64-битной .net рамками макс памяти? - PullRequest
2 голосов
/ 31 января 2011

Есть ли разница между максимальной памятью 32-битных и 64-битных .net фреймворков?Я имею в виду: могу ли я выделить более 2 ГБ памяти при записи на 64-битной среде .net?

Каковы особенности 64-битной платформы .net?Я не могу найти его в интернете.

Ответы [ 3 ]

2 голосов
/ 31 января 2011

С этой записи, похоже, они удалили максимум 2 ГБ, и вы можете использовать всю доступную память.

x64 имеет следующие плюсы:

  1. Нет 2 ГБ памяти - вы можете использовать всю доступную память.
  2. Потенциал для улучшения перф., Особенно с двойной точностью математика х64 имеет пару дополнительных регистрируется, и может делать некоторые вещи быстрее (потенциально). Я видел некоторые значительное повышение в некоторых весьма числовой код, но для большей части бизнеса приложения, вы не увидите разница.

x64 имеет следующие минусы:

  1. Меньше, чем идеальная поддержка IDE
  2. Программа занимает больше памяти (ссылки на объекты в 2 раза больше)

Глядя на Перенос 32-разрядного управляемого кода на 64-разрядный также может быть полезным.

1 голос
/ 31 января 2011

По моему опыту, на практике программа использует почти вдвое больше памяти в 64-битной системе. Других проблем пока нет. (Мой представляет собой набор из ~ 30 служб Windows, обрабатывающих некоторые данные с использованием ORM - отсюда и множество ссылок на объекты).

1 голос
/ 31 января 2011

Да, вы можете выделить столько памяти, сколько позволит ваша система, прежде чем смять под весом - однако массивы (включая большинство списков), строки и т. Д. По-прежнему ограничены 2 ГБ. Также обратите внимание, что, поскольку размер ссылки удваивается, это означает, что вы можете иметь только half столько ссылок в списке. Но это все еще много ссылок.

Размеры int и т. Д. Не меняются, поскольку они фиксированы независимо от платформы.

Вы также можете увидеть другие странности - x64 и x86 имеют несколько разных оптимизаций в движке. Поэтому, пожалуйста, сделайте тест - не просто измените его на x64 и разверните вслепую. Примерами здесь могут быть хвостовой вызов и различные вещи, окружающие сложные случаи, такие как volatile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...