Ответ 1
Во-первых, существует 64-разрядный компилятор С++, который поставляется с набором инструментов Visual Studio. Поэтому вы всегда можете изменить настройки своего проекта, чтобы при необходимости сделать 64-битные сборки вашего приложения.
Теперь, чтобы ответить на исходный вопрос.
Подумайте об этом с точки зрения затрат и рентабельности инвестиций. Начиная с лет поставки программного обеспечения в Microsoft, здесь, как я видел, что рассмотрение для 64-битных сборников получается.
-
Когда 32-разрядное приложение отлично работает на 64-разрядном, это почти не стартер, чтобы рассмотреть 64-разрядный.
-
Большинство проектов в Microsoft - это не просто небольшие проекты Visual Studio, в которых разработчик может просто перевернуть настройки проекта с 32-разрядной до 64-разрядной. (На самом деле я не знаю, компилирует ли Visual Studio Visual Studio с проектом VS.) Они часто содержат более миллиона строк кода, которые строятся с помощью набора компиляторов VS, но из командной строки и среды Makefile. Переключение на 64-битное означает обновление большой части этой инфраструктуры построения.
-
Существует стоимость переноса с 32-битного на 64-разрядный. Первая стоимость - это просто исправление ошибок, получение кода для компиляции, реструктуризация среды сборки и все начальные работы только для того, чтобы получить начальную сборку.
-
Существует текущая стоимость, которую вы платите за отдельные 32-битные и 64-битные сборки приложения. Вы должны строить его дважды каждый день. Вы должны запускать тестовое обеспечение на нем два раза в день. Это не 2x стоимость, но и не бесплатная.
-
С большим количеством SKU с той же базой кода, это увеличивает вероятность того, что разработчик что-то сломает, когда он проверит. Конечно, могут быть автоматические тесты, чтобы предотвратить это, но это замедлит разработчика после того, как он должен будет вернуться и исправить другой SKU, который он не установил локально на своей тестовой машине.
Теперь вот некоторые из мотивов перехода на 64-разрядные:
-
Вам действительно нужно использовать преимущества 64-битной архитектуры производительности и памяти. Большие серверы баз данных, которые используют как можно больше памяти, получат доступ к ограничениям более 2 ГБ, наложенным на процесс 32-разрядной Windows.
-
Вам нужно интегрироваться с чем-то, уже скомпилированным с 64-битным. Например, если вы хотите написать расширение оболочки для Windows, вам понадобится 64-разрядная версия для работы в 64-разрядной Windows. Это не означает, что все приложение нужно портировать, но это означает, что для этого компонента потребуется отдельная 64-битная сборка.
-
У вас есть платформа или история API для внешних разработчиков. Обычно у них есть свои собственные потребности для 64-битных сборок. Следовательно, им может понадобиться 64-битный API-интерфейс, даже если ваше родное приложение может уйти с 32-разрядной поддержкой.
-
Ваша команда только что была реорганизована в подразделение Windows, и ваш командный код считается необходимым для включения в следующую версию Windows. Там больше не будет принято решение - ваш код будет компилироваться для 32-битных, 64-битных и ARM (Surface RT).