Lider do GMAIL afirma: Java é mais rápido que C  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
chun
Forum Spammer
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1414
Localização: Curitiba/PR
Offline

O lider de desenvolvimento do GMAIL Paul Buchheit afirma em seu blog que com seus testes, mesmo tendo sido tomado todos os tipos de otimizações do GCC o codigo de seu bentchmark roda mais rapido em Java que em C, o que é ineteressante !

Veja a noticia completa aqui:

http://paulbuchheit.blogspot.com/2007/06/java-is-faster-than-c.html

outro site sobre o assunto:

http://www.idiom.com/%7Ezilla/Computer/javaCbenchmark.html

Quem eh o tal do Paul Buchheit ?

http://en.wikipedia.org/wiki/Paul_Buchheit


Comentem !!!!!

Movi para assuntos gerais porque não considerei como notícia
Luca

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17507
Localização: SP
Offline

Ora, ora, ora...
Como foi comentado nesse blog do Buchheit, Java bem escrito costuma ser mais rápido que C++ não-otimizado ou portável.
Mas se você quiser, pode chegar tão perto do "metal" quanto quiser em C++. Em última instância, pode usar até "inline assembly".
Por exemplo, copiar um arquivo usando java.nio é mais rápido que usar fopen/fread/fwrite em C++ para efetuar a cópia. Assim como alocar memória com Java é mais rápido que usar malloc/free em C++.
Mas se você se permitir usar as APIs específicas do sistema operacional no seu programa em C++, então a cópia será mais rápida. Tudo depende de quanto tempo você pode investir.
[WWW]
AngelPortal
Smalltalk
[Avatar]

Membro desde: 16/07/2007 15:44:02
Mensagens: 1
Offline

Repare que ele falou no GCC, usei um pouquinho e ele e lento para C++, bom para C, e agora parece que também para Java.

Até!

<applet>Angel Portal </applet>
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3070
Localização: Rio de Janeiro
Offline

Ta... mas o GCC não é o compilador que melhor otimiza um código, se ele ao menos tivesse testado o compilador da intel, o i++ , acho que teriamos um bom retrospecto.

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
chun
Forum Spammer
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1414
Localização: Curitiba/PR
Offline

e quantos % do mundo usa o i++ ? me desculpe... temos que falar do mais utilizado... quantos projetos por ae vc ve compilado usando I++ ?

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17507
Localização: SP
Offline

Normalmente você usa o icc (Intel C Compiler) se você quiser extrair até a última gota de desempenho de seu código em C, e estiver usando Windows ou Linux. (Se quiser o equivalente em Solaris, use o Sun Studio).
Nunca ouvi falar de "i++", só de "g++" (o gcc para C++) ou de icc (o Intel C Compiler, que pode ser adaptado ao Visual Studio (Windows) ou ao gcc (Linux).
[WWW]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3070
Localização: Rio de Janeiro
Offline

ops, i++ aqui é um link simbólico para o icc

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17507
Localização: SP
Offline

peczenyj wrote:ops, i++ aqui é um link simbólico para o icc



De qualquer maneira, se você tem alguns dólares para gastar e tem um programa grande em C++, é interessante compilá-lo com o icc. Sempre pode ganhar alguns segundos de execução.

Du mußt dein Leben ändern. - R. M. Rilke
[WWW]
aleck
Virtual Machine Man
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 820
Localização: Rio de Janeiro
Offline

Só para deixar claro a opinião do autor:




Note: A lot of people seem to be taking this post to be the "Ultimate C vs Java shootout". It's not. Performance is a very complex topic. My only real point is this: Java (which used to be slow) has reached the class of "fast languages". For the majority of applications, speed is no longer a valid excuse for using C++ instead of Java.



Ou seja, ele disse que Java não é mais lento(costumava ser em suas versões iniciais) e que já pode ser considerado rápido a ponto de ser utilizado em diversas aplicações.


Sendo mais claro ainda, o foco da matéria era mostrar que Java pode ser tão rápido quanto as linguagens mais rápidas, e não dizer que é mais rápido que C++, inclusive em alguns testes dele o C++ foi mais rápido.


[]'s

http://alexandresoli.wordpress.com

Aquele que duvida e não investiga torna-se não só infeliz mas também injusto. (Pascal)

No mundo, apenas há duas maneiras de subirmos, ou graças à nossa habilidade, ou mediante a imbecilidade dos outros (Jean de La Bruyère)
[WWW] [MSN]
bandrade
Virtual Machine Man

Membro desde: 20/01/2003 15:45:15
Mensagens: 782
Offline

Nossa, a discussão sobre a otimização que rolou nos comentários dá página é MUITO interessante... Do tipo, de quais otmizações a JVM pode fazer...


Mark said...
Paul - I think java does use the -ffast-math optimisation. It is used by default, and can be turned off using the 'strictfp' keyword.


Será isso verdade? Alguém já fez algum aplicativo geográfico / físico em java para nos falar a respeito?

igouy said...

Following on from Matthew's replacement of the while loop by a for loop ....

Simply using a while loop in an ordinary way maybe marginally faster than the for loop -


Quando programava em c/c++ (BREW) substituia sempre o for por um while, pela performace (mínima diferenca)... mas no meu mundo fazia diferença... isso faz diferença para alguem que desenvolve aplicativos/plataformas em Java?



Barry said...
You're right I am guessing, and that's the point. What you think the JVM is optimizing today may be completely changed in another version. So maybe in Java 7, even those for loops would be optimized out if you removed the trace statements. I'm actually surprised they're not optimized now.
It's clear the JVM is optimizing as the program runs. You can actually see the asterisks printing faster and faster as it runs. What's not clear is what exactly is being optimized. Is it the math calculations, or the printing, a little of both, or something completely different? Maybe it figures out the program is printing the same thing over and over and compiles the program to simply
print "*"
print "**" etc. And the math is no longer needed. WOW! That would be something, wouldn't it?


Será isso possível / válido? Se um loop não utilizar o resultado de uma chamada a metodo, ele simplesmente pode ignorar a chamada aaquele método, aumentando a performance. Achei a idéia fantástica e nunca tinha pensado nisso. Hoje o editor já é capaz de identificar váriaveis não utilizadas, então a JVM também poderia fazer o mesmo.

[]'s
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17507
Localização: SP
Offline


Será isso possível / válido? Se um loop não utilizar o resultado de uma chamada a metodo, ele simplesmente pode ignorar a chamada aaquele método, aumentando a performance. Achei a idéia fantástica e nunca tinha pensado nisso. Hoje o editor já é capaz de identificar váriaveis não utilizadas, então a JVM também poderia fazer o mesmo.


Isso é possível se:

- O método for suficientemente pequeno (inlinable);
- Ele não tiver efeitos colaterais (uma "função pura").

Se o método for muito grande, ou não for possível determinar que ele não tem efeitos colaterais, não é possível efetuar a tal otimização.

http://java.sun.com/products/hotspot/whitepaper.html

[WWW]
aleck
Virtual Machine Man
[Avatar]

Membro desde: 27/03/2006 08:08:33
Mensagens: 820
Localização: Rio de Janeiro
Offline

Apenas uma referência para o pessoal que se interessou pelo assunto de performance no Java:

http://www.javaperformancetuning.com

[]'s

http://alexandresoli.wordpress.com

Aquele que duvida e não investiga torna-se não só infeliz mas também injusto. (Pascal)

No mundo, apenas há duas maneiras de subirmos, ou graças à nossa habilidade, ou mediante a imbecilidade dos outros (Jean de La Bruyère)
[WWW] [MSN]
Leozin
Forum Spammer
[Avatar]

Membro desde: 18/06/2005 21:01:26
Mensagens: 2079
Localização: São Paulo/SP
Offline

cada dia que passa Java owna cada vez mais muitas tecnologias, detonando os "grandes" como o C, o Python (quando a Nuxeus, não lembro o nome, que era o maior conteúdo Python do mundo, trocou toda a sua arquitetura pra plataforma JBoss + Seam) e o Ruby (quando os testes de bm do JRuby vs Ruby mostraram que o JRuby era mais rapido)

parabéns a equipe da Sun e aos desenvolvedores que contribuem para a evolução da linguagem

e com isso, nós, desenvolvedores só temos a ganhar

http://www.leozin.com.br/blog
[ICQ]
saoj
Forum Spammer
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2358
Localização: Los Angeles, EUA
Offline


Eu programo em Java mas algumas coisas no meu trabalho tenho que fazer em C. Cada vez estou mais convencido que nao ha qualquer desculpa hoje em dia para se perder tempo com C.

Programar em C eh como usar fita kacete para persistir dados hoje em dia, ou como usar aqueles telefones moveis que vinham numa maleta.

Eh simplesmente um atente ao meu precioso tempo e a minha baixa tolerancia ha coisas infernalmente complexas.

Essa semana estava compilando uma parada em Solaris e o compilador estava dando um monte de erros. Detalhe: O erro era mais ou menos assim: "Deu pau! Se vira para descobrir qual eh o problema!" O Google me salvou. Tinha que colocar uma flag louca no compilador para nao dar esse erro. Coisas sem qualquer cabimento logico...

Dai vc compila e quando executa eh um show de segmentation faults. Dai vc tem que resolver um a um colocando printf no seu codigo, pois usar gdb eh uma coisa para monges budistas.

Conclusao: Programar em C soh nos ultimos dos ultimos casos...

Participe dos meus novos blogs:
O Poder Primário - Você no controle da sua felicidade
Sedução Tecnológica - Tutoriais, dicas e histórias de um engenheiro

[Email] [WWW]
cassio
Forum Spammer
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: São José dos Campos-SP
Offline

Tem um pessoal da minha faculdade (professores, um pessoal do INPE/CPTEC, etc) que não troca C puro por nada...
Eu não gosto muito de C porque é extremamente dificil fazer qualquer coisa. Acho legal para estudar e entender como as coisas funcionam "mais baixo nível", mas fico só nisso. No meu trabalho programo 70% do tempo em Java e 30% em um sistema legado em C++. Não vejo diferença significativa de desempenho, mas sem dúvida Java é bem menos complexo que C++. Ainda assim, me divirto bastante com o C++. Mas realmente, usar GDB, ninguém merece...

Cássio Marques

/*codificando*/
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team