Achei muito interessante o post que li no lingpipe sobre um comparativo entre as versões 7 e 6 do Java. Mesmo comparando somente a parte de aritmética e de arrays o teste mostra que a nova versão do Java além de novidades em recursos vai também de encontro a uma velha lenda de que o Java é lento.
Em parte essa lenda data do início do Java, que realmente onde com hardware mais modesto (da época do Pentium 100 Mhz) o Java era penoso de ser utilizado pelo usuário final, e isso contribuiu bastante para o Swing ser pouco adotada em empresas para o desenvolvimento de ERP.
Mas hoje com hardware bem mais potente e com a JVM do Java menor em tamanho e bem mais veloz uma aplicação qualquer em Java chega a ser, em determinados casos, mais rápido do que similares escrita em linguagem nativa do sistema operacional, como por exemplo C++.
Assim a versão 7 do Java consegue ser até 15% mais veloz do que a versão 6, um grande salto.
Algumas mudanças na codificação do Java 7 fazem a diferença. Como por exemplo, o tratamento de exceptions, melhorias nos literais numéricos, switch com String etc…
Lembrando que o “novo java” foi dividido, e algumas das grandes mudanças serão lançadas apenas no Java 8.
Em relação a JVM o seu grande diferencial esta relacionado a criação de um novo bytecode, chamado: invokeDynamic. O que isso significa? A instrução invokedDynamic conseguirá invocar um método sem a obrigatoriedade de conhecer os tipos envolvidos.
Tchauzin!
D
douglascst90
Questão de desempenho será que é notavel a difereça??? Essa nova mudança acabara com a velha lenda do java ser “lento”???
F
FernandoFranzini
A lenda ja acabou antes do java 7…
D
douglascst90
Certo, mas muitos programadores em DELPHI e PHP, dizem ainda que java é lento de mais e aquela historia toda. RS
E sempre fico queto, acho que discutir com eles esse assunto nao vale a pena. :x
F
FernandoFranzini
douglascst90:
Certo, mas muitos programadores em DELPHI e PHP, dizem ainda que java é lento de mais e aquela historia toda. RS
E sempre fico queto, acho que discutir com eles esse assunto nao vale a pena. :x
Pois é…fazer oque…
Java no desktop ja compete cara a cara com executável nativo…
É claro q matematicamente falando é mais lendo…mas quase imperceptível…outra detalhe é gargalo de performance hoje em soluções corporativas não é maquina virtual e sim questões arquiteturais…
Se vc precisar de portabilidade…vai para Java…se não pode usar qualquer um desses RAD ai…
A questão hoje…quem não quer portabilidade??
D
douglascst90
òtimo, hehehehe
L
lokits5
douglascst90
vc ja esta usando essa versão??
D
douglascst90
no momento nao. Eu estou usando o 6 ainda no meu tcc, tenho um pequeno receio de migra para o 7 e acontecer de surgir " erros". Mas futuramente irei utilizalo se possivel.
F
fabioEM
Cara,
A galera que desenvolve em PHP deve reclamar porque não usa aquela arruma de frameworks que de consueto são usados no desenvolvimento java para web! Só isso.
Agora, gostaria de saber( por curiosidade mesmo) onde o java é melhor em desempenho que o c++
J
joaoabi
Nao creio que o java 7 seja mais rapido,
acho que isso é lenda, mas pretendo testa-la embreve
F
fabioEM
Tenho certeza que não é. Mas ninguém perde o emprego por isso :lol:
H
Hebert_Coelho
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
R
ragnaroklatino
mas quais diferenças do java 6 e o 7 lançado pela oracle [/url]? sou leigo em java… e só velocidade[url]?
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
Em questão de sintaxe não tem como dar pau pq a compatibilidade retroativa é 100%!!! Esse o justamente o motivo de toda demora da evolução.
O maximo que vai acontecer é dar warning na compilado acusando generics etc…mas vc pode suprimir usando anotação…
H
Hebert_Coelho
FernandoFranzini:
jakefrog:
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
Em questão de sintaxe não tem como dar pau pq a compatibilidade retroativa é 100%!!! Esse o justamente o motivo de toda demora da evolução.
O maximo que vai acontecer é dar warning na compilado acusando generics etc…mas vc pode suprimir usando anotação…
Driver do Postgres.
Esse cara foi um inferno na antiga empresa. Sei lá pq cargas d’aguas na hora de migrar a versão do Java, o driver do Postregres arriou.
Concordo com você que teoricamente toda versão de Java é compatível, mas o Driver do Postgres já foi exception in my life! =P
G
Giulliano
joaoabi:
Nao creio que o java 7 seja mais rapido,
acho que isso é lenda, mas pretendo testa-la embreve
Mês passado fiz uma migração da aplicação que tem aqui na empresa da versão 1.3 para a versão 1.7. Primeiro ponto é que aquele lance de compatibilidade não é 100% garantido, dado que muitas implementações deixaram de funcionar.
Outro ponto interessante é que a velocidade da aplicação não mudou. O que muda (e já foi dito aqui neste post) é a maneira como vc programa e a arquitetura do seu software, isto sim é essencial para garantir um bom desempenho.
vlw pelo link dos sites… te pergunta nesses site encontro exemplos de códigos usando java 7? se não pode me informar aonde tem?
Nas ultimas revistas de Java aqui do brazil ja até saturo de tanto exemplo…
A
adrianoklly
Realmente ocorre incopatibilidade com uma função ou outra… tive esse problema na empresa…
F
feharaujo
Hebert Coelho:
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
Onde eu trabalho há bastante disso, principalmente projetos antigos e grandes, que tem possibilidade de estar sendo atualizado para uma versão mais nova, mas não são. Muitas vezes pelo tamanho da plataforma e teimosia msm xD
J
jmmenezes
FernandoFranzini:
jakefrog:
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
Em questão de sintaxe não tem como dar pau pq a compatibilidade retroativa é 100%!!! Esse o justamente o motivo de toda demora da evolução.
O maximo que vai acontecer é dar warning na compilado acusando generics etc…mas vc pode suprimir usando anotação…
Amigo, desculpe mas isso na pratica não é real (só na teoria)…
tive problemas ao rodar um sistema que funcionava perfeitamente no Java 6 em Java 7, por causa do TimSort que foi implementado na ordenação de arrays do java 7…
Tive de fazer pequenos ajustes no código!
Na maior parte das vezes esses ajustes são por causa de códigos “mal-escritos” que não estão “seguindo a risca a documentação”… porém como eles “funcionam”, sabemos que em sistemas grandes, programadores não seguem a risca a documentação… e isso costuma gerar problemas em algumas migrações sim!
Lógico que não é nada de outro mundo, mas costuma ser necessário um teste completo da aplicação e se identificar essas pequenas coisas, realizar ajustes!
Mesmo assim vale o esforço! A dor de cabeça de ficar desatualizado é muito maior!
J
jmmenezes
Alguns comentários baseado em experiências sobre o tópico!
Realmente o java 7 esta mais rapido que o 6… isso testando diversos sistemas que desenvolvemos aqui em SOs Windows e Linux. A diferença em alguns casos chega a ser bem notável, principalmente no caso de ordenação de arrays (devido ao TimSort), mas tivemos problemas na migração por causa deste e tivemos que realizar ajustes. Parece que a parte de rede esta bem mais rapida também… pelo menos da essa sensação ao usar os sistemas…
Antigamente o Java já foi muito lento sim… até para coisas triviais, mas eram épocas de maquinas mais modestas também. A partir do 5 a coisa melhorou muito, mas só ficou realmente interessante para desktop a partir do 6… era absurda a diferença de desenvolver qualquer coisa até mesmo em SWT usando java 1.4 e desenvolver em C++. Hoje se consegue resultados bem próximos, até idênticos! e que acaba valendo muito a pena, pois Java é mais formal e facil que C++, logo, se torna bem mais produtivo para alguns tipos de projetos, por exemplo sistemas corporativos.
Temos que tomar cuidado e não confundir lentidão com peso… uma coisa é o sistema dar uma resposta rapida para o usuário custe o que custar! Outra coisa é um sistema consumir pouca memória/processamento/etc… programas Java são muito mais pesados do que programas C++. O consumo de memória chega a ser 10 vezes maior. Mas se for fazer um sistema corporativo, esse peso a mais é irrelevante nas máquinas hoje que possuem facilmente mais de 2GB de memória! Isso não quer dizer que rodar 10 programas java ao mesmo tempo seja viável…
Em testes que geralmente o Java se sai melhor que o C++ é por causa das otimizações da JVM principalmente para processamento paralelo. Se mudar a forma de programar em C++ é bem provável que se consiga resultados bem melhores que no Java.
R
Rachel_da_Silveira_C
Hebert Coelho:
O que eu gostaria de ver era as empresas começarem a utilizar o J7.
Conheço empresa que até hoje roda o código no Java 1.4 com medo de migrar e dar pau.
O.o
Na verdade o que eu acho que é complicado mudar quando já se tem um sistema rodando…
A
adsonluis
que dia vai da a porva
V
VonNaturAustreVe
Eu notei uma melhoria na ordenação dos arrays, mas tirando isso não vi muita alteração. O pessoal citou que houveram melhorias na parte aritmética, vou fazer uns testes para ver se melhorou realmente.