For Fun and Profit

Sobre benchmarks de linguagens

Hoje, não sei como, topei com mais uma comparação de desempenho entre Java em e C++ que, como de costume, gerou uma discussão sem fim. Não que eu ache essas discussões totalmente inúteis: na verdade, você sempre acaba aprendendo/conhecendo alguma coisa nova. O ponto principal e que todo mundo ignora – para meu espanto – é que, quando um programa qualquer em Java é mais rápido que o seu equivalente em C/C++ isso só prova uma coisa: que um programa C/C++ bem escrito consegue processar qualquer coisa bem rápido, inclusive os bytecodes do Java ;)

Em tempo, dêem uma olhada nesse interessantíssimo conjunto de benchmarks.

Esta entrada foi postada em Tuesday, January 27th, 2009 at 6:58 pm na categoria C & C++, Desenvolvimento, Tecnologia. Você pode acompanhar as respostas através do RSS 2.0 feed. Você pode deixar uma resposta, ou um trackback do seu site.

« Excelente desfragmentador para Windows
Windows 7 unmasked »

3 comentários para “Sobre benchmarks de linguagens”

  1. Anonymous Says:
    January 28th, 2009 at 3:23 am

    Eae! :D

    Você está correto. Um programa “bem escrito” em C++ supera tudo (exceto Fortran) :)

    No entanto, um programa performático em C++ leva muito mais tempo para ser feito do que sua versão em java e a manutenabilidade dele fica comprometida. Logo o custo financeiro é maior. Por isso a análise que eu fiz mantinha os códigos semelhates. Desta forma eu garantia um custo de desenvolvimento semelhante.

    Exemplo, depois de várias tentativas, muitas pessoas me mandaram código otimizado em C++ que superam o programa java. Mas isso foi muito tempo depois, com um código muito mais complexo que o inicial.

    []s

  2. angusyoung Says:
    January 28th, 2009 at 5:56 am

    Vitor, não tenho como discordar desses argumentos: para muitos casos, na minha opinião, é mais rápido e barato fazer em Java do que em C++ (obviamente, existem excessões). Tempo de desenvolvimento custa caro.

    []‘s

  3. Anonymous Says:
    April 24th, 2009 at 2:49 am

    O assunto “tocou em minha ferida”. Eu discordo no que foi tocado sobre produtividade.

    Penso que, a curto prazo, Java possa ser mais produtivo. Porém, a longo prazo, penso que C++ pode ter a mesma ou até maior produtividade do que linguagens como Java, Python, PHP, “Object Pascal”, etc.

    Um dos primeiros fatores que eu aponto para defender a idéia de que a produtividade depende de ser a longo ou a curto prazo, é o fato do C++ não prover, nos padrões da linguagem, APIs de desenvolvimento prontas. Isso ocorre ao oposto de Java, Python, PHP, e, até de “Object Pascal”, que em todas as implementações deste utilizadas no mercado se tem uma enorme API pronta, aonde para se fazer uma polenta basta instanciar uma classe.

    Mas vejam que a utilização de uma API de terceiros, que no caso da API do Java, provida pela ex-Sun, assim como em outros casos, entope você com milhões de classes que fazem coisas absolutamente parecidas, para serem utilizadas em casos diferentes. É o caso, por exemplo, das classes da família da “Date”(DateFormat, SimpleDateFormat, e por aí vai). No fim das contas, você sempre terá que entender a fundo o funcionamento dessas classes todas e despender um grande tempo as estudando para utilizá-las corretamente, conforme o crescimento do projeto.

    Lembrando que em caso de, por exemplo, bug na JVM, você poderá perder dias “procurando bruxas” em seus códigos e achando um modo de passar por cima do problema. É o mesmo que gerenciar configuração de um enorme aplicativo(pense, por exemplo, em um DBA Oracle), aonde você está totalmente alienado do que está “por baixo dos panos” e tem que tentar “prezumir” como a coisa funciona muitas vezes.

    Penso que para um projeto pequeno, isso seja totalmente aceitável. Em um projeto pequeno, eu particularmente não utilizaria C++, utilizaria Python por exemplo. Mas, em um projeto maior, e aonde o desempenho seja crítico, eu uso C++, que a longo prazo será mais produtivo.

    Agora, em softwares do mundo real, nunca ninguém me provou que um aplicativo em Java pode ser rápido. Pego como exemplo de aplicativo Java típico o JDeveloper e o NetBeans, ou até aquele IRPF Java que nossa querida Receita Federal nos disponibiliza. São lentos, como todo aplicativo em Java que conheço. Já aplicativos em C++ variam. Alguns são mais lentos ainda, outros são rápidos. Desenvolvo softwares de firewall/redes, e nunca adotaria Java como linguagem para eles.

    No mais, tudo depende da finalidade. Para meu ramo eu nunca adotaria Java, mas para benchmarks de desempenho Java é uma excelente linguagem.

Comentar

  • Páginas

    • GDB: comandos básicos
    • Sobre
    • Meu Mundo de TI
      • Artigos
      • Filesystem Hierarchy Standard
      • Pacotes RPM (RPM Packages)
      • Screenshots
    • Variedades
      • Fotos
      • Mapas
      • Museu do IRC RioMafrense
      • Receitas
  • Arquivos

    • October 2009
    • July 2009
    • June 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • November 2008
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • November 2007
    • October 2007
    • September 2007
    • June 2007
    • April 2007
    • March 2007
    • February 2007
    • January 2007
    • December 2006
    • November 2006
    • October 2006
    • September 2006
    • August 2006
    • July 2006
    • June 2006
    • May 2006
    • April 2006
    • March 2006
    • February 2006
    • January 2006
  • Categorias

    • Ciência (4)
    • Dica (24)
    • Geral (70)
      • Curiosidades (6)
    • iPhone (1)
    • Mentes Brilhantes (1)
    • Sistemas Operacionais (42)
      • FreeBSD (1)
      • Linux (21)
        • Arch Linux (3)
        • Gentoo (14)
      • Mac OS X (12)
      • Outros Sistemas (1)
      • Unix (4)
      • Windows (5)
    • Tecnologia (91)
      • Banco de Dados (6)
      • Desenvolvimento (68)
        • Análise (1)
        • C & C++ (6)
        • POG (2)

For Fun and Profit is proudly powered by WordPress | Bob