Quais são os diferentes usos para os níveis de otimização do apt-build?

4

Estava instalando o apt-build. Vi três níveis de otimização para código, "Light", "Medium" e "Strong". Ele alertou que strong levaria à instabilidade do sistema, então optei pelo Medium.

Existe uma diferença observável entre os níveis de otimização?

Devo ir apenas -O3?

    
por dmanexe 09.06.2011 / 23:21

1 resposta

4

Eu diria que isso dificilmente depende do código que você está compilando.

Seja lá o que você escolher, será exibido como sinalizador do GCC, de acordo com página do GCC :

  

-O , -O1 . Com -O , o compilador tenta reduzir o tamanho do código e o tempo de execução, sem realizar otimizações que exigem muito tempo de compilação.

     

-O2 Otimize ainda mais. O GCC realiza quase todas as otimizações suportadas que não envolvem uma troca de velocidade espacial. Em comparação com -O, esta opção aumenta o tempo de compilação e o desempenho do código gerado.

     

-O3 Otimize ainda mais. -O3 ativa todas as otimizações especificadas por -O2 e também ativa as opções -finline-functions , -funswitch-loops , -fpredictive-commoning , -fgcse-after-reload , -ftree-vectorize e -fipa-cp-clone .

Você pode executar

gcc -O<1-3> -Q --help=optimizers

para ver o conjunto de métodos de otimização ativados para cada nível de otimização.

Quanto mais agressivos eles são, maior o risco de o compilador estragar alguma coisa (não deveria acontecer, e eu não sei qual a probabilidade de algo acontecer, mas se você quer ficar do lado seguro, eu sugiro você segue a recomendação do apt-build não para usar -O3 / Strong ).

    
por htorque 20.08.2011 / 14:28