/ /Ot (código de favor pequena, código de favor rápido) Os,
Minimiza ou maximiza o tamanho de DLLs e EXEs.
/Os
/Ot
Comentários
/Os(Favor pequeno código) minimiza o tamanho de DLLs e EXEs instruindo o compilador para favorecer o tamanho em vez de velocidade.O compilador pode reduzir muitas construções de c e C++ seqüências similares do código de máquina.Ocasionalmente, essas diferenças oferecem vantagens e desvantagens do tamanho de imagem e velocidade.O /Os e /Ot as opções permitem que você especifique uma preferência para um sobre o outro:
/Ot(Favor Fast código) maximiza a velocidade de DLLs e EXEs, instruindo o compilador para favorecer a velocidade acima de tamanho.(Este é o padrão). O compilador pode reduzir muitas construções de c e C++ seqüências similares do código de máquina.Ocasionalmente, essas diferenças oferecem vantagens e desvantagens do tamanho de imagem e velocidade.A opção /Ot está implícito pela maximizar velocidade (/O2.) opção.O /O2 opção combina várias opções para produzir código muito rápido.
Se você usar /Os ou /Ot, e em seguida, você também deve especificar /Og para otimizar o código.
Observação |
---|
As informações coletadas em execuções de teste de criação de perfil substituirá otimizações que outrora seriam em vigor se você especificar /Ob, /Os, ou /Ot.Para obter mais informações, Otimizações guiadas por perfil. |
x 86 específicos
O exemplo de código a seguir demonstra a diferença entre o código de pequenos Favor (/Os) opções e o código de favorecer Fast (/Ot) opção:
Observação |
---|
A seguir descreve o comportamento esperado ao usar /Os ou /Ot.No entanto, comportamento do compilador de versão para versão pode resultar em otimizações diferentes para o código a seguir. |
/* differ.c
This program implements a multiplication operator
Compile with /Os to implement multiply explicitly as multiply.
Compile with /Ot to implement as a series of shift and LEA instructions.
*/
int differ(int x)
{
return x * 71;
}
Conforme mostrado no fragmento de código de máquina abaixo, quando DIFFER.c for compilado para o tamanho (/Os), implementa a compilador a multiplicar a expressão na instrução return explicitamente como um multiplicar para produzir uma seqüência de curta, porém mais lenta de código:
mov eax, DWORD PTR _x$[ebp]
imul eax, 71 ; 00000047H
Como alternativa, quando DIFFER.c for compilado para velocidade (/Ot), implementa a compilador a multiplicar a expressão na instrução de retorno como uma série de mudança e LEA instruções para produzir uma seqüência rápida, mas mais de código:
mov eax, DWORD PTR _x$[ebp]
mov ecx, eax
shl eax, 3
lea eax, DWORD PTR [eax+eax*8]
sub eax, ecx
FIM x 86 específicos
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Páginas de propriedades caixa de diálogo.Para obter detalhes, consulte:Como: abrir páginas de propriedades do projeto.
Clique no C/C++ pasta.
Clique no otimização página de propriedades.
Modificar o Favorecer Tamanho ou velocidade propriedade.
Para definir essa opção de compilador programaticamente
- Consulte FavorSizeOrSpeed.