Phoronix compara desempenho de GCC, LLVM-GCC, DragonEgg, Clang
Conforme o compilador livre Clang (e toda a infraestrutura do LLVM, do qual é integrante) avança em seu roadmap, o interesse em comparar com o veterano (e também livre) GCC aumenta – e agora que o Clang começa a se aproximar de poder compilar o kernel Linux, creio que as comparações irão se intensificar.
Comparar características e diferenciais de modo geral é tarefa bem complexa, mas o Phoronix buscou adiantar um comparativo de desempenho (tanto da compilação em si quanto do código gerado), e o fez da maneira obsessivo-compulsiva de sempre: comparou o GCC 4.2.1, 4.3.0, 4.4.0, 4.5.0 e uma versão em desenvolvimento do GCC 4.6, o LLVM 2.8, o LLVM-GCC e o Dragonegg (que coloca o LLVM como componente da compilação do GCC).
Os testes envolveram uma miudeza de benchmarks e compilações, típica do Phoronix: Apache, Gcrypt, OpenSSL, John The Ripper, BYTE, C-Ray, Crafty, Himeno, MAFFT, HMMer, 7-Zip, LAME MP3, x264, GraphicsMagick, compilação cronometrada do Apache e do ImageMagick.
Tentar resumir as 7 páginas de gráficos e detalhamentos seria até injusto, mas vale mencionar que cada um dos sistemas exibiu forças e fraquezas, e as versões em desenvolvimento (LLVM, Clang e GCC 4.6) puderam mostrar em quais pontos estão mais avançadas e onde ainda precisam de ajustes. Me chamaram a atenção especialmente os comparativos em que todos os compiladores testados estavam equilibrados – sinal de maturidade sendo alcançada, na minha opinião. (via phoronix.com)
Legal.
Queria que tivesse algum compilador comercial junto, com o da MS e o da Intel, pra poder ver o quanto há espaço pra melhorar.
@Marcos
Além de não ser foco do Phoronix, fico imaginando se não existe algum impedimento legal.
Como a Oracle que proíbe que se divulgue benchmarks do seu SGBD.
Isso sim é um teste bem feito. Gostaria que incluísse o SW não livre Visual Studio nesse comparativo.
@Weber Jr., se não me engano algumas empresas como Oracle colocam cláusulas em alguns de seus produtos proibindo benchmarks :-) Mas não creio que seja o caso do ICC. O ICC é o melhor compilador para gerar bom código x86. Nem é difícil imaginar o porque :-)
Ao meu ver o tempo de compilação é algo que não deve importar tanto, já que um tempo maior pode significar um número maior de otimizações, o que é algo muito bom em se tratando de qualidade de código.
Ah sim, queria ver o PCC (primeiro comando da capital) e o TCC (terceiro comando da capital, suplente do segundo ;-)) na disputa também.
Pelo que vi o tcc gera binários bem pequenos, compila muito rápido (muitas vezes mais rápido que o gcc), além de gerar um código muito otimizado. Também, foi criado pelo mesmo desenvolvedor original do QEMU, do FFMPEG e o cara que bateu o record de dígitos do número Pi (π), num computador pessoal :-).
não faria sentido incluir o compilador da microsoft que só existe pra windows enquanto o foco desses compiladores é o unix. Mas uma comparação com o ICC seria legal, embora tenham feito uma comparação entre ICC e GCC pouco tempo atrás.
@Weber Jr.: creio que não há impedimento para eles medirem o desempenho com o Visual Studio (constantemente o site faz benchmarks comparando “clones livres do Unix” com o Mac OS X, desempenho de placas de vídeo no Windows e no Linux, etc.).
O que impede eles de fazer o comparativo com todos os compiladores seja o fato de o VS só compilar executáveis para Windows e o Clang, por sua vez, para Unix/Linux. Como os formatos de arquivos executáveis são diferentes no Windows e nos Unix-like, não é possível avaliar os três compiladores ainda. Quando o VS suportar compilação para Unices ou o Clang gerar executáveis Windows, aí será possível fazer uma comparação dessas.
Visual Studio não compila PN. é só uma IDE xumbrega chamando um compilador de linha-de-comando como qualquer outro… crianças!…
Até agora o LLVM não mostrou essas coisas todas, mas a galerinha adora aqui dizer que ele tá “humilhando” GCC.
Hahahaha…