É sempre trabalhoso comparar compiladores, e mesmo quando a comparação se reduz à questão do desempenho (em tempo de compilação ou de execução), fatores como a maturidade de cada projeto, o suporte a plataformas e muitos outros precisam ser levados em consideração.
Mesmo assim o Phoronix se deu ao trabalho de simplesmente jogar às favas a questão de possibilitar o máximo de interpretações objetivas, e colocou uma série de compiladores livres (2 versões do GCC, LLVM, PCC, Open64) e mais 2 combos (LLVM otimizando e gerando o código objeto, mas usando o front-end do GCC como parser) para rodar os benchmarks aos quais conseguissem suportar em suas configurações default, em um processador Atom 64 bits com 2GB de RAM rodando Ubuntu, e publicou os resultados numéricos.
Nem todos os compiladores puderam participar de todos os testes, e é importante observar que compiladores em versões de desenvolvimento e em versões de produção foram tratados igualmente, assim como compiladores multi-arquitetura e especializados em uma única arquitetura também foram colocados no mesmo balaio, o que também ajuda a tornar ainda mais difusas as conclusões alcançadas.
O artigo é longo e merece leitura atenta. Não dá para resumir este benchmark (especialmente quando seus próprios autores não incluíram uma conclusão geral), mas produzi uma tabela com as minhas observações sobre os testes realizados, que levam à minha conclusão de que estes resultados refletem a ebulição em andamento do cenário dos compiladores livres.
Para interpretar a tabela a seguir, cuidado com conclusões simplistas do tipo “tal compilador ganhou mais testes” ou “tal compilador participou de mais testes” – se servem para alguma conclusão prática neste momento, o que estes números genéricos indicam é que há vários compiladores livres alcançando estágios de desempenho interessantes e que podem justificar alguma atenção dos desenvolvedores para potencialmente adotá-los como ferramentas, ao mesmo tempo em que indicam espaços em que há bastante oportunidade para melhoria de desempenho para alguns dos nomes mais conhecidos.
Veja abaixo os benchmarks realizados, o compilador melhor colocado e outros detalhes que me atraíram a atenção em cada um deles:
- Apache: quase empate entre os 3 compiladores participantes. Ganhou o combo LLVM-GCC 4.2.1.
- John the Ripper MD5: 5 participantes, ganhou o GCC 4.4.5.
- John the Ripper Blowfish: 5 participantes, ganhou por boa margem o combo LLVM-GCC 4.5.1 (DragonEgg).
- BYTE Dhrystones: 6 participantes, ganhou por larga margem o combo LLVM-GCC 4.2.1.
- BYTE reg. arithmetic: 3 participantes, quase empate, ganhou o Open64, e foi o único teste em que o PCC ficou à frente do GCC (mas ele só participou de mais dois…).
- BYTE floating point: 3 participantes, ganhou por larga margem o Open64.
- C-RAY: 5 participantes, ganhou o Open64 por larga margem.
- Himeno: 5 participantes, ganhou por larga margem o Open64.
- MAFFT: 5 participantes, ganhou o Open64.
- 7-Zip: 5 participantes, ganhou o GCC 4.5.1.
- FLAC: 3 participantes, ganhou por boa margem o combo LLVM-GCC 4.2.1.
- GraphicksMagick: 3 participantes, as 2 versões do GCC empataram.
(via phoronix.com)
0sem comentários ainda