/ /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++ funcionalmente semelhante seqüências de código de máquina. Ocasionalmente, essas diferenças oferecem vantagens e desvantagens de tamanho versus velocidade. O /Os e /Ot 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++ funcionalmente semelhante seqüências de código de máquina. Ocasionalmente, essas diferenças oferecem vantagens e desvantagens de tamanho versus 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, em seguida, você também deve especificar /Og para otimizar o código.
Observação |
---|
Informações coletadas em execuções de teste de criação de perfil substituirá otimizações que seriam em vigor se você especificar /Ob, /Os, ou /Ot. For more information, Otimizações guiadas por perfil. |
x 86 específicos
O exemplo de código a seguir demonstra a diferença entre o código da pequena 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, o comportamento de compilador para versão release 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 curta, mas é mais lenta do 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 Property Pages caixa de diálogo. For details, see Como: Abrir páginas de propriedades do projeto.
Clique o C/C++ pasta.
Clique o otimização página de propriedades.
Modificar o favorecer tamanho ou velocidade propriedade.
Para definir esta opção de compilador programaticamente
- See FavorSizeOrSpeed.