Общие рекомендации по переносу
Перенос 32-разрядных приложений в 64-разрядную версию Microsoft Windows будет проще, чем переносить 16-разрядные приложения в 32-разрядную версию Windows. Тем не менее, этот шаг будет проходить более гладко при тщательном планировании. Ниже приведены некоторые общие рекомендации.
Планирование
Определите величину усилий, необходимых для порта. Определите, сколько работы требуется, следуя следующим элементам:
- Проблема с 32-разрядным кодом. Скомпилируйте 32-разрядный код с помощью 64-разрядного компилятора и изучите степень ошибок и предупреждений.
- Общие компоненты или зависимости. Определите, какие компоненты в приложении исходят из других команд и планирует ли эти команды разрабатывать 64-разрядные версии кода.
- Устаревший код или код сборки. 16-разрядные приложения под управлением Windows не работают в 64-разрядной версии Windows и должны быть перезаписаны. Хотя код сборки x86 выполняется в WOW64, вы можете переписать этот код, чтобы воспользоваться скоростью архитектуры Intel Itanium.
Переносите все приложение, а не только части приложения.
Хотя можно перенести части приложения или ограничить код до 2G с помощью /LARGEADDRESSAWARE:NO, эта стратегия обменивает краткосрочную выгоду на долгосрочные неудобства.
Заметка
/LARGEADDRESSAWARE:NO игнорируется для двоичного файла ARM64.
Найдите замены технологий, которые не будут перенесены.
Некоторые технологии, включая DAO (объект доступа к данным) и ядро СУБД Jet Red, не будут перенесены в 64-разрядную версию Windows.
Рассматривайте 64-разрядную версию как отдельный выпуск продукта.
Несмотря на то, что ваш 64-битный продукт может использовать ту же базу кода, что и 32-битный, ему требуется дополнительное тестирование и могут возникнуть другие факторы для выпуска.
Развитие
Начните разработку соответствующего кода.
Разработчики могут начать писать соответствующий код с помощью последних файлов заголовков Windows и новых типов данных без негативных последствий для 32-разрядной разработки продукта. Дополнительные сведения см. в разделе Подготовка к 64-разрядной Windows.
Убедитесь, что код можно скомпилировать для 32-разрядных и 64-разрядных Windows.
Новая модель данных была разработана для создания 32-разрядных и 64-разрядных приложений из одной базы кода с небольшими изменениями. Команды разработки SQL Server и Windows разрабатывают 32-разрядные и 64-разрядные версии своих продуктов из той же базы кода.
Используйте новые функции оптимизации компилятора для оптимальной производительности.
Оптимизация кода для процессоров Intel Itanium важнее, чем для x86. Компилятор берёт на себя многие функции оптимизации, которые ранее обрабатывались микропроцессором. Вы можете максимально повысить производительность 64-разрядного приложения с помощью двух новых функций оптимизации компилятора: управляемой оптимизации профиля и оптимизации всей программы. Обе функции приводят к более длительному времени сборки и требуют раннего разработки хороших сценариев тестирования.
оптимизация с управлением профилем включает в себя двухэтапный процесс компиляции. Во время первой компиляции код инструментируется для записи поведения выполнения. Эта информация используется во время второй компиляции для управления всеми функциями оптимизации.
оптимизация всей программы анализирует код во всех файлах приложений, а не только один. Этот подход улучшает производительность несколькими способами, в том числе более эффективным встраиванием, а также улучшенным анализом побочных эффектов и кастомными соглашениями о вызовах.
Тестирование
Определите, будет ли тестироваться 64-разрядный или 32-разрядный код, запущенный в WOW64.
Некоторые приложения включают как собственный 64-разрядный код, так и 32-разрядный код, работающий в WOW64. Тщательно изучите этот план при разработке тестового плана и определите, должны ли средства тестирования быть 64-разрядными, 32-разрядными или комбинациями. Часто необходимо протестировать 64-разрядные и 32-разрядные версии приложения в 64-разрядной версии Windows.
Тестирование часто используемых 32-разрядных компонентов.
Сначала перекомпилируйте код на 64-разрядный и протестируйте. Во-вторых, исправьте проблемы, перекомпилируйте в 32-разрядных версиях, а затем протестируйте. В-третьих, перекомпилируйте под 64 бита и протестируйте.
Тестирование компонентов COM и RPC.
Убедитесь, что 32-разрядные и 64-разрядные компоненты COM и RPC взаимодействуют правильно. Кроме того, может потребоваться проверить связь с 16-разрядными компонентами по сети.
Проверьте 32-разрядную версию в 64-разрядной версии Windows.
Клиенты могут продолжать использовать 32-разрядные приложения в 64-разрядной Windows, где проблемы с производительностью и памятью не являются основными соображениями.
Проверьте различные конфигурации памяти.
Добавление большого объема памяти на сервере иногда предоставляет ранее незамеченные проблемы в приложении или операционной системе.