Вопрос

Должно ли приложение в .NET быть построено в 64-битной версии, чтобы в полной мере использовать преимущества машины с 64-битной ОС, или оно будет использовать ее преимущества так же, как и 32-битная сборка.По сути, у нас возникла проблема с исключением нехватки памяти, и было предложено запустить консольное приложение на 64-битной системе, что «может» решить проблему.Вопрос в том, можем ли мы просто раскрутить 64-битную коробку и загрузить на нее текущее приложение, или мне нужно пересобрать приложение на 64-битной версии.

Это было полезно?

Решение

Если ваше приложение настроено для сборки на платформе «Любой ЦП», оно будет работать на любой из них.

Просто убедитесь, что он не использует какие-либо 32/64-битные особенности, иначе у вас возникнут проблемы.

Документация MSDN здесь.

Некоторые обсуждения недостатков см. здесь

Другие советы

Если он создан для какой-либо платформы (по умолчанию), он будет работать в 64-битной версии в 64-битных операционных системах.

При этом все еще существуют потенциальные проблемы, на которые следует обратить внимание.Если вы взаимодействуете с собственным кодом (через p/invoke, C++/CLI или COM), вам потребуется перенести этот код на 64-разрядную версию.Если приложение управляемо на 100%, оно просто работает.

«Любой процессор» — ваш друг.

Как в сторону:

У нас было особенно большое Три структура, превышающая 2 ГБ памяти 32-битной Windows.Поскольку большая часть структуры состоит из ссылок на объекты, мы обнаружили, что требования к памяти приложения почти удвоились при переходе на 64-битную версию, требуя около 4 ГБ.Это связано с тем, что память для хранения ссылки имеет ширину 64 бита вместо 32.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top