Depende da sua versão do gcc, do seu hardware, da sua distribuição e de muitas outras coisas. Normalmente, seu provedor de distribuição Linux faria essa pesquisa para você e usaria essas opções ao criar seu pacote. As distribuições, no entanto, tentam fazer as coisas funcionarem com a maioria das expectativas de hardware e usuários. Eu acho mais personalizável sem ter que me preocupar muito com o Gentoo . Linux do zero ou rolando sua própria distribuição é muito trabalho. Eu tenho uma instalação do Gentoo com emulação de 32 bits desativada no kernel.
De Guia de Otimização do Gentoo , é melhor usar -O2
em vez de -O3
-O3: This is the highest level of optimization possible, and also the riskiest. It will take a longer time to compile your code with this option, and in fact it should not be used system-wide with gcc 4.x. The behavior of gcc has changed significantly since version 3.x. In 3.x, -O3 has been shown to lead to marginally faster execution times over -O2, but this is no longer the case with gcc 4.x. Compiling all your packages with -O3 will result in larger binaries that require more memory, and will significantly increase the odds of compilation failure or unexpected program behavior (including errors). The downsides outweigh the benefits; remember the principle of diminishing returns. Using -O3 is not recommended for gcc 4.x.
-mtune=core2
está ok se tiver certeza de que essa é a melhor opção para seu processador. Eu pessoalmente gosto de -march=native
. Veja CFags seguras do Gentoo
GCC 4.2 introduces a new -march option, -march=native, which automatically detects the features your CPU supports and sets the options appropriately. If you have an Intel or AMD CPU and are using >=sys-devel/gcc-4.2.3, using -march=native is recommended.
-m64
é uma opção do processador e deve ser definida automaticamente por -mtune=core2
ou -march=native
. Consulte Opções do GCC i386 e x86-64 .
Aviso: Você não precisa mudar para o Gentoo para usar os conselhos deles para compilar a partir da fonte.