PHP 5 - Compilando com as melhores práticas com PHP 4
Este artigo tem por objetivo mostrar-lhes a compilação do PHP 5 para obter melhor desempenho mantendo o core limpo de módulos, apenas os básicos, e dispondo os demais como módulos dinamicamente carregados. Também poderá ser usado para manter PHP 4 e PHP 5 num mesmo sistema. Os procedimentos foram testados no Slackware para manter duas versões de PHP (4 e 5), mas são facilmente ajustáveis para qualquer outra necessidade.
Parte 3: Otimização do GCC
GCC 3.3
- -march=[SEUSISTEMA ou i686] (isto dá preferencia pelo uso nesta arquitetura, porém ainda deixa o programa funcional nas demais);
- -mcpu=[SEUSISTEMA ou i686] (isto sim fecha o programa para o hardware especificado, eu uso esta!).
GCC 3.4
- -mtune=[SEUSISTEMA ou i686] (isto sim fecha o programa para o hardware especificado, eu uso esta!).
Semelhante ao 3.3, contudo foi "arrumado" o -mcpu para -mtune.
GCC 4
- -march=native (ou seja, o hardware atual!)
- -mtune=native (e só o hardware atual, ehehe)
Este é o que eu gosto! Para ser prático use as opções acima.
Outras flags
- -pipe -O2 (isto é básico!)
- -frename-registers -funswitch-loops -fweb
- -funroll-loops -fprefetch-loop-arrays (use estas com cautela!)
- -msse -mfpmath=sse (mmx|sse|3dnow|sse2|sse3)(Esta opção você pode analisar com o dmesg. Se você tiver sse3 ou 3dnow ou ao menos mmx, use :)
Essa opções podem ser usadas com o GCC 4. Muitas delas possivelmente são válidas desde o GCC 3.3.
Para aprender mais sobre tecnologias SIMD, aconselho visitar o endereço abaixo.
Para dúvidas:
man gcc