Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Ao otimizar um executável, você pode alcançar um equilíbrio entre velocidade de execução rápida e tamanho de código pequeno. Este tópico discute alguns dos mecanismos que o Visual Studio fornece para ajudá-lo a otimizar o código.
Características do idioma
Os tópicos a seguir descrevem alguns dos recursos de otimização na linguagem C/C++.
Pragmas de Otimização e Palavras-chave
Uma lista de palavras-chave e pragmas que você pode usar em seu código para melhorar o desempenho.
Opções do compilador listadas por categoria
Uma lista de opções do compilador /O que afetam especificamente a velocidade de execução ou o tamanho do código.
Declarador de referência Rvalue: &&
As referências Rvalue suportam a implementação da semântica de movimento. Se a semântica de movimentação for usada para implementar bibliotecas de modelos, o desempenho dos aplicativos que usam esses modelos poderá melhorar significativamente.
O pragma otimizado
Se uma seção otimizada do código causar erros ou uma lentidão, você poderá usar o pragma de otimização para desativar a otimização dessa seção.
Coloque o código entre dois pragmas, como mostrado aqui:
#pragma optimize("", off)
// some code here
#pragma optimize("", on)
Práticas de programação
Você pode notar mensagens de aviso adicionais ao compilar seu código com otimização. Esse comportamento é esperado porque alguns avisos estão relacionados apenas ao código otimizado. Você pode evitar muitos problemas de otimização se prestar atenção a esses avisos.
Paradoxalmente, otimizar um programa para velocidade pode fazer com que o código seja executado mais lentamente. Isso ocorre porque algumas otimizações para velocidade aumentam o tamanho do código. Por exemplo, as funções inlining eliminam a sobrecarga de chamadas de função. No entanto, inserir muito código pode tornar seu programa tão grande que o número de falhas de página de memória virtual aumenta. Portanto, a velocidade obtida com a eliminação de chamadas de função pode ser perdida devido à troca de memória.
Os tópicos a seguir discutem boas práticas de programação.
Dicas para melhorar o código Time-Critical
Melhores técnicas de codificação podem produzir um melhor desempenho. Este tópico sugere técnicas de codificação que podem ajudá-lo a garantir que as partes críticas de tempo do seu código tenham um desempenho satisfatório.
Práticas recomendadas de otimização
Fornece diretrizes gerais sobre a melhor forma de otimizar seu aplicativo.
Depuração de código otimizado
Como a otimização pode alterar o código criado pelo compilador, recomendamos que você depure seu aplicativo e meça seu desempenho e, em seguida, otimize seu código.
Os tópicos a seguir fornecem informações sobre como depurar compilações de versão.
Os tópicos a seguir fornecem informações sobre como otimizar a criação, o carregamento e a execução do código.
Nesta secção
Pragmas de Otimização e Palavras-chave
Melhorando a taxa de transferência do compilador
Por que os números Floating-Point podem perder precisão
Representação Floating-Point IEEE
Dicas para melhorar o código Time-Critical
Usar o nome da função sem () não produz nenhum código
Práticas recomendadas de otimização
Profile-Guided Otimizações
Variáveis de ambiente para otimizações de Profile-Guided
PgoAutoSweep
pgomgr
Pgosweep
Como: Mesclar vários perfis PGO em um único perfil