Поделиться через


Общие рекомендации по переносу

Перенос 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, где проблемы с производительностью и памятью не являются основными.

  • Тестирование различных конфигураций памяти.

    Добавление большого объема памяти на сервер иногда вызывает ранее незамеченные проблемы в приложении или операционной системе.