H� uma menor-guerra que vai sobre na lista de endere�os dos alunos de Sun e em outra parte onde o equ�voco comum: Java � lento est� aplainando repetidas vezes, muito ao des�nimo dos colaboradores conhecedors de Java que souberam para idades que Java � r�pido comparado mesmo a C++ e se realizou assim por diversos anos. Todo o isto re-surfaced porque Sun decidiu mudar seu s�mbolo de rel�gio a JAVA (previamente era SUNW). Toda a esta � terr�vel frustrante aos colaboradores de Java que tomam o orgulho em Java e est� bem ciente de suas capacidades porque leverage o di�rio. Deixe-nos assim descansar este mito para descansar definitivamente, devemos n�s?


Mito 1: Java � l�ngua interpretada e assim que deve ser lento

Java apenas-em-tempo-� compilado atualmente pelo JVM (m�quina virtual de Java). a Apenas-em-tempo-compila��o d�-lhe o desempenho equivalente �s aplica��es compiladas, melhora �s vezes. JIT de Sun n�o � �nico tampouco. IBM e outro fornecem sua execu��o de JVM a apenas-em-tempo-compila��o demasiado.

Voc� pode igualmente compilar programas de Java em executables nativos com os compiladores livres como o gcj (http://gcc.gnu.org/java/) ou pagados como o JATO das maravalhas (http://www.xlsoft.com/en/products/jet/index.html).

A lentid�o de Java n�o � intr�nseca, isso � um equ�voco arquitect�nico como demonstrado acima. Mas a espera l� � mais.

Java contra marcas de n�vel de C++

Deixe-nos olhar algumas marcas de n�vel que comparam Java com o C++.

Desempenho de Java contra C++ por J.P.Lewis e de Ulrich Neumann dos gr�ficos de computador e do laborat�rio da tecnologia de Immersive, Universidade do Calif�rnia do Sul

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

Este artigo 2003 achados dos num�ricos este artigo examina um n�mero de marcas de n�vel e encontra que o desempenho de Java no c�digo � compar�vel �quele de C++, com sugest�es que o desempenho relativo de Java est� continuando a melhorar. N�s descrevemos ent�o raz�es te�ricas desobstru�das pelas quais estes resultados de marca de n�vel devem ser esperados.

Eu gostaria de citar mesmo mais adicional enquanto deu uma explana��o detalhada sobre o mito da lentid�o de Java e a dissipa completamente:

Conclus�es: Por que � Java � lento t�o popular?

Java � agora quase igual (ou mais rapidamente do que) a C++ em marcas de n�vel de baixo n�vel e num�ricas. Isto n�o deve ser surprising: Java � uma l�ngua compilada (embora JIT compilado).

N�o obstante, a id�ia que java � lento � acreditada extensamente. Porque este � assim que � talvez o aspecto o mais interessante deste artigo.

Deixe-nos olhar diversas raz�es poss�veis:

* Java circa 1995 era lento. As primeiras encarna��es de java n�o fizeram java um compilador de JIT, e daqui foram bytecode interpretado (como o pit�o por exemplo). Os compiladores de JIT apareceram em JVMs de Microsoft, Symantec, e em java1.2 de Sun.

Esta explana��o � implaus�vel. A maioria do de povos computador podem chocalhar fora a velocidade exata no gigahertz dos processadores os mais atrasados, e seguem esta informa��o enquanto muda cada m�s (e fizeram assim por anos). Contudo esta explana��o pede que n�s acreditem que n�o podem recordar que uma �nica e mudan�a um pouco importante da velocidade da l�ngua ocorreu em 1996.

* Java pode ser lento ainda. Por exemplo, os programas escritos com a classe rosquear-segura do vetor s�o necessariamente mais lentos (em um �nico processador pelo menos) do que aqueles escritos com a classe rosquear-insegura equivalente de ArrayList.

Esta explana��o � ingualmente unsatisfying, porque C++ e outras l�nguas t�m da penalidades similares abstrac��o. Por exemplo, o livro de Kernighan e de Pike a pr�tica da programa��o tem uma tabela com as seguintes entradas, descrevendo o desempenho de diversas execu��es de um programa de processamento do texto:
Vers�o um PII de 400 megahertz
C 0.30 segundos
Segundo de C++/STL/deque 11.2
Segundo de C++/STL/list 1.5

Um outro problema evidente conhecido em C++ � as despesas gerais de retornar um objeto de uma fun��o (diversa o objeto desnecess�rio cria/ciclos da c�pia/destruct � involvidos).

* A partida do programa de Java � lenta. Enquanto um programa de java come�a, unzips as bibliotecas de java e compila partes dse, assim que um programa interativo pode ser lento para os primeiros segundos dos pares do uso.

Isto aproxima ser uma explana��o razo�vel para o mito da velocidade. Mas quando p�de explicar impress�es do usu�rio, n�o explica porque muitos programadores (quem podem facilmente compreender a id�ia de um programa interpretado que est� sendo compilado) compartilham da opini�o.

Duas das observa��es as mais interessantes a respeito desta edi��o s�o aquela:

1. h� de uma cole��o lixo similar est� o mito lento que persiste apesar das d�cadas da evid�ncia pelo contr�rio, e
2. que na correia fotorreceptora inflamam as guerras, os povos est�o felizes discutir suas impress�es da velocidade para muitas p�ginas sem nunca referir dados reais.

Junto estes sugerem que seja poss�vel que nenhuma quantidade de dados alterar� a opini�o dos povos, e que na realidade estes apressam a opini�o provavelmente tenha pouco a fazer com java, cole��o de lixo, ou o assunto de outra maneira indic. Nossa resposta encontra-se provavelmente em algum lugar na Sociologia ou na psicologia. Os programadores, apesar de sua aprecia��o professada do pensamento l�gico, n�o s�o imunes a um tipo da mitologia, embora estes mitos particulares s�o arbitr�rios e relativamente inofensivos.

Est� aqui uma outra marca de n�vel em Java contra C++

O Java � mais r�pido do que a marca de n�vel de C++

http://www.kano.net/javabench/
Isto foi citado igualmente no artigo de compartimento de JDJ: http://java.sys-con.com/read/45250.htm

Eu usei G++ (GCC) 3.3.1 20030930 (com glibc 2.3.2-98) para o C++, com - a bandeira O2 (para i386 e i686). Eu compilei o c�digo de Java normalmente com o compilador de Sun Java 1.4.2_01, e funcionei-o com o Sun 1.4.2_01 JVM. Eu funcionei os testes em Red Hat Linux 9/Fedora Test1 com a semente 2.4.20-20.9 em um port�til T30. O port�til tem uma microplaqueta m�vel do Pentium 4, 512MB da mem�ria, uma sorte do disco lento.

Os resultados que eu come� eram que Java � significativamente mais r�pido do que C++ aperfei�oado em muitos casos.
De o tempo startup JVM foi inclu�do nestes resultados. Isso significa mesmo com tempo startup de JVM, Java � ainda mais r�pido do que C++ em muitos destes testes.

BTW: O artigo igualmente lig aos lotes de outras marcas de n�vel na extremidade.

Esperan�osamente eu coloquei finalmente o descanso ao mito de java sou lento. � uma percep��o, uma percep��o evidente falsa, n�o uma realidade. Come� sobre ele.