Partilhar via


Otimizando seu código

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

Ver também

Referência de construção C/C++