| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 15:33:22
|
chun
Forum Spammer
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 15:42:53
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 15:48:15
|
AngelPortal
Smalltalk
![[Avatar]](/images/avatar/26876a13a3c4ea7719501187a7e84fc9.png)
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> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 16:11:51
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
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.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 16:30:47
|
chun
Forum Spammer
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 16:34:39
|
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).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 17:48:32
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
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.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 17:52:16
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 18:01:50
|
aleck
Virtual Machine Man
![[Avatar]](/images/avatar/2051bd70fc110a2208bdbd4a743e7f79.jpg)
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) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 18:02:40
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 18:20:14
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 18:20:32
|
aleck
Virtual Machine Man
![[Avatar]](/images/avatar/2051bd70fc110a2208bdbd4a743e7f79.jpg)
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) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 20:54:23
|
Leozin
Forum Spammer
![[Avatar]](/images/avatar/5dca4c6b9e244d24a30b4c45601d9720.png)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 22:05:14
|
saoj
Forum Spammer
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.jpg)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/07/2007 22:44:54
|
cassio
Forum Spammer
![[Avatar]](/images/avatar/8ae7398026ed8f2172aefd6cbc856bc8.jpg)
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*/
|
|
|
 |
|
|