Compartilhar via


Otimizando seu código

Ao otimizar um executável, você pode obter um equilíbrio entre a velocidade de execução rápida e o tamanho do código pequeno. Este tópico discute alguns dos mecanismos que o Visual Studio fornece para ajudá-lo a otimizar o código.

Funcionalidades da linguagem

Os tópicos a seguir descrevem alguns dos recursos de otimização na linguagem C/C++.

Pragmas e palavras-chave de otimização
Uma lista de palavras-chave e pragmas que você pode usar em seu código para melhorar o desempenho.

Opções de 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 de semântica de movimentação. 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 de otimização

Se uma seção otimizada de 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, conforme mostrado aqui:

#pragma optimize("", off)
// some code here
#pragma optimize("", on)

Práticas de programação

Você pode observar mensagens de aviso adicionais ao compilar seu código com otimização. Esse comportamento é esperado porque alguns avisos se relacionam apenas ao código otimizado. Você pode evitar muitos problemas de otimização se você aususar 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 aumentar a velocidade do tamanho do código. Por exemplo, as funções de sublinhamento 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 para a troca de memória.

Os tópicos a seguir discutem boas práticas de programação.

Dicas para melhorar código crítico em termos de tempo
Melhores técnicas de codificação podem gerar melhor desempenho. Este tópico sugere técnicas de codificação que podem ajudá-lo a garantir que as partes críticas do seu código sejam executadas de forma apropriada.

Melhores práticas de otimização
Fornece diretrizes gerais sobre a melhor maneira de otimizar seu aplicativo.

Depurando 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 seção

Pragmas e palavras-chave de otimização
Melhorando a taxa de transferência do compilador
Por que números de ponto flutuante podem perder a precisão
Representação de ponto flutuante IEEE
Dicas para melhorar código crítico em termos de tempo
Usar o nome de função sem () não produz código
Melhores práticas de otimização
Otimizações guiadas por perfil
Variáveis de ambiente para otimizações guiadas por perfil
PgoAutoSweep
pgomgr
pgosweep
Como mesclar vários perfis do PGO em um único perfil

Confira também

Referência de build C/C++