Diretrizes gerais de portabilidade
A portabilidade de aplicativos de 32 bits para o Microsoft Windows de 64 bits será mais fácil do que a portabilidade de aplicativos de 16 bits para o Windows de 32 bits. No entanto, a mudança será mais tranquila com algum planejamento cuidadoso. Veja a seguir algumas diretrizes gerais.
Planejamento
Determine a magnitude do esforço necessário para a porta. Avalie quanto trabalho está envolvido identificando os seguintes itens:
- Problema de código de 32 bits. Compile seu código de 32 bits com o compilador de 64 bits e examine a extensão dos erros e avisos.
- Componentes ou dependências compartilhados. Determine quais componentes em seu aplicativo se originam de outras equipes e se essas equipes planejam desenvolver versões de 64 bits de seu código.
- Código de assembly ou herdado. Aplicativos baseados no Windows de 16 bits não são executados no Windows de 64 bits e devem ser reescritos. Embora o código do assembly x86 seja executado no WOW64, convém reescrever esse código para aproveitar a velocidade da arquitetura do Intel Itanium.
Portar todo o aplicativo, não apenas partes dele.
Embora seja possível portar partes de um aplicativo ou limitar o código a 2G com /LARGEADDRESSAWARE:NO, essa estratégia troca o ganho de curto prazo por problemas de longo prazo.
Observação
/LARGEADDRESSAWARE:NO é ignorado para um binário ARM64.
Encontre substitutos para tecnologias que não serão portadas.
Algumas tecnologias, incluindo DAO (Objeto de Acesso a Dados) e o mecanismo de banco de dados Jet Red, não serão portadas para o Windows de 64 bits.
Trate sua versão de 64 bits como uma versão separada do produto.
Embora seu produto de 64 bits possa compartilhar a mesma base de código que seus 32 bits, ele precisa de testes adicionais e pode ter outras considerações sobre a versão.
Desenvolvimento
Comece a desenvolver o código em conformidade agora.
Os desenvolvedores podem começar a escrever código em conformidade usando os arquivos de cabeçalho mais recentes do Windows e os novos tipos de dados sem efeitos adversos no desenvolvimento de produtos de 32 bits. Para obter mais informações, consulte Preparando-se para o Windows de 64 bits.
Verifique se o código pode ser compilado para o Windows de 32 e 64 bits.
O novo modelo de dados foi projetado para permitir que aplicativos de 32 e 64 bits sejam criados a partir de uma única base de código com poucas modificações. As equipes de desenvolvimento do SQL Server e do Windows estão desenvolvendo versões de 32 e 64 bits de seus produtos da mesma base de código.
Use os novos recursos de otimização do compilador para obter o melhor desempenho.
A otimização de código para processadores Intel Itanium é mais importante do que era para o x86. O compilador pressupõe que muitas das funções de otimização anteriormente manipuladas pelo microprocessador. Você pode maximizar o desempenho de um aplicativo de 64 bits usando dois novos recursos de otimização do compilador: Otimização Guiada por Perfil e Otimização de Programas Inteiros. Ambos os recursos resultam em tempos de build mais longos e exigem o desenvolvimento antecipado de bons cenários de teste.
A Otimização Guiada por Perfil envolve um processo de compilação em duas etapas. Durante a primeira compilação, o código é instrumentado para capturar o comportamento de execução. Essas informações são usadas durante o segundo compilado para orientar todos os recursos de otimização.
A Otimização de Programas Inteira analisa o código em todos os arquivos de aplicativo, não apenas em um único. Essa abordagem aumenta o desempenho de várias maneiras, incluindo melhor inlining, bem como análise de efeito colateral aprimorada e convenções de chamada personalizadas.
Teste
Determine se você testará o código de 64 ou 32 bits em execução no WOW64.
Alguns aplicativos incluem código nativo de 64 bits e código de 32 bits em execução no WOW64. Investigue isso de perto durante o desenvolvimento de um plano de teste e decida se suas ferramentas de teste devem ser de 64 bits, 32 bits ou uma combinação. Muitas vezes, você precisará testar as versões de 64 e 32 bits do aplicativo no Windows de 64 bits.
Testar componentes de 32 bits usados com frequência.
Primeiro, recompile o código para 64 bits e teste. Em segundo lugar, corrija problemas, recompile em 32 bits e teste. Em terceiro lugar, recompile para 64 bits e teste.
Testar componentes COM e RPC.
Verifique se os componentes COM e RPC de 32 e 64 bits se comunicam corretamente. Talvez você também precise testar as comunicações com componentes de 16 bits em uma rede.
Teste sua versão de 32 bits no Windows de 64 bits.
Os clientes podem continuar a usar aplicativos de 32 bits no Windows de 64 bits, onde problemas de desempenho e memória não são considerações importantes.
Teste diferentes configurações de memória.
A adição de grandes quantidades de memória no servidor às vezes expõe problemas não notados anteriormente no aplicativo ou no sistema operacional.