2009-07-02 4 views
7

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

ответ

12

Если ваше приложение настроено на платформу «Любой процессор», то оно будет работать соответственно.

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

MSDN docs here.

Некоторое обсуждение недостатков, см here

+7

Это не совсем так, как .Net 4.5, вы также должны отменить выбор 32-битных настроек проекта, см. Http: // blogs .microsoft.co.il/саша/2012/04/04/что-AnyCPU-действительно-значит-в-в-сети-45-и-визуальному-студии-11 / – gmn

5

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

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

1

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

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

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

Смежные вопросы