Tive uma caso de um programa C++, que fazia extamente o que um Programa Java
fazia.

Com excessivas alocações e desalocações dinâmicas de memória, no caso um
programa de rotação de planilhas, apresentando os dados em Formula1 for
java.


A versão em C++, precisava desalocar a memória no exato instante em que
fosse "desutilizada" (não sei se existe esta palavra). Já na versão Java,
este trabalho ficou por conta do Garbage Colector, que só passou à fazer a
desalocação quando o usuário estivesse relxado, ou seja, em estado de
espera.

Não que a versão C++ fosse lenta, muito pelo contrário, mas a versão Java,
ficou 2 vezes e meia mais rápida, sem ainda colocar HotSpot, utilizando JVM
do Netscape 4.7.


Fiquei bastante satisfeito.


Clebert
----- Original Message -----
From: Bruno Souza (Sun Microsystems) <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, February 10, 2000 1:59 PM
Subject: Re: RES: [SouJava-J] JNI II


>
>
> Alysson Neves Bessani wrote:
> >
> > >
> > > Aproveitando, eu gostaria de fazer um alerta para todos em relacao
> > > a performance. Muita gente assume que Java sera muito lento
> > > para o que voce quer fazer, sem nunca ter experimentado (nao estou
> > > dizendo que eh esse o caso). Isso acontece muito com programadores C.
> > > Hoje em dia, em especial com as novas tecnologias como o HotSpot,
> > > voce deve considerar com muito cuidado essa decisao.
> <parte sem relevancia removida>
> > > Bruno.
> > >
> >
> >         Bruno, ou demais membros da lista, eh verdade que as atuais
JVM's
> > chegam a rodar um programa java com performance bastante semelhante a um
> > programa em C++? Isto desconsiderando-se a "inicializacao" do programa,
> > quando ha uma serie de "coisinhas" como as pilhas de constantes e
> > variaveis da classe que a JVM tem que carregar do .class.
> >
>
> (Desculpem a resposta longa, mas essa eh uma questao importante
> para todos, e por mais que eu fale, nunca eh suficiente...)
>
> Resposta rapida: as novas JVMs (em particular o HotSpot) trazem a
> performance de Java (interpretado) para proximo da performance de C++
> compilado.
>
> Resposta longa:
> Observe que essas comparacoes sao bastante complicadas, ja que
> para voce poder comparar bananas com bananas voce precisa estar falando
> de um programa em C++ que faca o que um programa em Java faz. Ou seja,
> um programa em C++ que entre outras coisas garanta:
> - alocacao e desalocaco de memoria corretamente
> - que nao existirao ponteiros perdidos no programa
> - realize checagens de execoes
>
> Nao so isso, existe um outro lado que eh facilidade e o tempo de
> desenvolvimento da aplicacao. A IDC estima que cerca de 75% do tempo
> gasto debugando uma aplicacao provem de bugs direta ou indiretamente
> realcionados com problemas na alocacao/desalocacao de memoria. Bugs
> que nao existem na plataforma Java. Alem disso, bibliotecas como
> threads, serializacao, gui, e mesmo coisas como tratamento de excessoes,
> que fazem parte da plataforma Java, sao em geral adendos e/ou bibliotecas
> proprietarias em C++. Nao so isso, mas a questao de portar a sua aplicacao
> para 2 plataformas pode ser um trabalho que requer tanto tempo quanto
> desenvolver a aplicacao, e em Java voce ganha a portabilidade para
> diversas plataformas quase que de graca.
>
> Por outro lado, performance eh algo sempre relativo. Quando C foi
> lancado, era cerca de 20x mais lento do que o assembler. Ainda hoje,
> um programa escrito em C pode ser _varias_ vezes mais lento do que um
> escrito em Assembler. Quantos nessa lista que programam em C prefeririam
> programar em Assembler e acham que o programa ficaria melhor? Por
> outro lado, quando Java nasceu, dependendo da aplicacao, era cerca de 10
> a 20 vezes vezes mais lenta do que C++. E Java ja esta mais de 20x
> mais rapida do que a versao original...
>
> Em geral, quando as pessoas comecam a fazer rodeios para responder eh
> porque vao responder no final algo que nao agrada. Nao eh o meu caso,
> eu so cito essas coisas todas porque sao importantes, e muitos de
> voces nessa lista sao obrigados a convencer seus superiores, ou seus
> clientes, de que Java eh uma tecnologia poderosa. Ou seja, existe
> dezenas de coisas pelo menos tao importantes quanto performance ao
> se desenvolver uma aplicacao, e se voce olhar apenas para uma delas,
> voce estara completamente errado.
>
> >         Alguem pode me indicar URL's que demonstram estes testes (se
> > existirem).
>
> Tudo isso dito, eu sugiro que voces deem uma olhada na URL:
>
> http://java.sun.com/features/1999/04/hotspot.html
>
> Que mostra casos reais de utilizacao do HotSpot, quando era ainda
> versao beta. E os numeros ja impressionantes dessa tecnologia ainda serao
> muito melhores, ja que o HotSpot esta na sua primeira versao, e muitas
> melhorias que nao foram incluidas ainda virao com a tecnologia.
>
> Vejam abaixo alguns trechos do artigo, leiam e passem pra frente.
> No geral, Java eh a tecnologia ideal para o desenvolvimento das
> novas aplicacoes de rede. Nao desperdice o seu tempo tentando
> dar voltas porque voce considera que esse ou aquele problema eh
> limitante. Nenhuma outra tecnologia de desenvolvimento tem tanta
> gente, de tantas empresas, trabalhando para a melhoria da tecnolgia.
> A versao 1.2 de Java (sem o HotSpot) eh 20 vezes mais rapida do que
> a versao 1.0.2. Que outra tecnologia deu esse ganho de performance na
> sua aplicacao em um periodo de apenas 4 anos? E isso so tende a
> melhorar.
>
> Abracos,
>
> Bruno.
>
> Vejam abaixo alguns trechos do artigo (_enfases_ adcionadas por mim):
>
> (...)
> The results were surprising and consistent. In _virtually_every_case_,
> these real-world application developers say that, _at_a_minimum_, simply
> installing the Java HotSpot performance engine _doubled_the_performance_
> of their server-side Java technology-based applications. In some cases,
> depending on the nature of the application, the pluggable Java HotSpot
> performance engine _turbo-charged_runtime_performance_four-fold_.
>
> (...)
> Both systems are transaction intensive, seeing as many as 20 request
> processes per second on Sun SPARCTM servers. "We did some testing with an
> earlier beta version [of the Java HotSpot performance engine], and were
very
> impressed," says Dr. Michael Christiansen, Ph.D., a consulting programmer
> with the $968 million wireless messaging and information provider. "We saw
> an overall performance boost on server-side apps, which was very
> encouraging. And the amount of time per transaction was
_decreased_four_fold_."
>
> (...)
> Heir says the most recent Java HotSpot performance engine beta (RC2)
> has _pushed_the_performance_ of their Java technology-enabled servers to
> _nearly_that_of_compiled_C++_.
>
> >
> >         Valeu.
> >
> > Alysson Neves Bessani
> > mailto:[EMAIL PROTECTED]
> > LES- Software Engineering Laboratory
> > UEM- Universidade Estadual de Maringa
> >
> >     --------------------------- LISTA
SOUJAVA ---------------------------
> >     http://www.soujava.org.br  -  Sociedade de Usuários Java da
Sucesu-SP
> >     [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
> >     [para sair da lista:
http://www.soujava.org.br/forum/cadastrados.htm]
>
  ---------------------------------------------------------------------
>
> --
>
>
> Bruno.
> ______________________________________________________________________
> Bruno Peres Ferreira de Souza                         Sun Microsystems
> System Engineer - Java Technologist         [EMAIL PROTECTED]
>         if I fail, if I succeed, at least I live as I believe
>
>     --------------------------- LISTA SOUJAVA ---------------------------
>     http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>     [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
>     [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>     ---------------------------------------------------------------------
>

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a