Hay una de menor importancia-guerra que entra encendido en lista de personas a quienes se mandan propaganda de los alumnos de Sun y a otra parte donde la idea falsa com�n: Java es lenta est� emergiendo repetidas veces, mucho a la consternaci�n de los reveladores bien informados de Java que han sabido para las edades que Java es r�pida incluso comparada a C++ y ha sido tan por varios a�os. Todo el esto volvi� a allanar porque Sun decid�a a cambiar su s�mbolo de teletipo a JAVA (era previamente SUNW). Todo el esto terrible est� frustrando a Java los reveladores que toman orgullo en Java y es bien consciente de sus capacidades porque leverage la diaria. �Tan reclinemos este mito para reclinarse de una vez por todas?


Mito 1: Java es lengua interpretada y as� que debe ser lenta

Java apenas-en-tiempo-es compilada actualmente por el JVM (m�quina virtual de Java). la Apenas-en-tiempo-compilaci�n le da funcionamiento equivalente a los usos compilados, mejora a veces. JIT de Sun no es el �nico tampoco. IBM y otros proveen de su puesta en pr�ctica de JVM la apenas-en-tiempo-compilaci�n tambi�n.

Usted puede tambi�n compilar los programas de Java en executables nativos con los recopiladores libres como el gcj (http://gcc.gnu.org/java/) o pagados como el JET de las virutas para rellenar (http://www.xlsoft.com/en/products/jet/index.html).

La lentitud de Java no es intr�nseca, eso es una idea falsa arquitect�nica seg�n lo demostrado arriba. Pero la espera all� es m�s.

Java contra pruebas patrones de C++

Miremos algunas pruebas patrones que comparan Java con C++.

Funcionamiento de Java contra C++ por J.P.Lewis y de Ulrich Neumann de los gr�ficos de computadora y del laboratorio de la tecnolog�a de Immersive, Universidad de California del Sur

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

Este art�culo a partir 2003 hallazgos de num�ricos este art�culo examina un n�mero de pruebas patrones y encuentra que el funcionamiento de Java en c�digo es comparable a el de C++, con las indirectas que el funcionamiento relativo de Java est� continuando mejorando. Entonces describimos razones te�ricas claras por las que estos resultados de prueba patr�n se deben esperar.

Quisiera cotizar incluso m�s futuro mientras que �l dio una explicaci�n detallada sobre el mito de la lentitud de Java y la disipa a fondo:

Conclusiones: �Por qu� es Java es lento tan popular?

Java es casi igual ahora (o m�s r�pidamente que) a C++ en pruebas patrones bajas y num�ricas. Esto no debe ser asombrosamente: Java es una lengua compilada (no obstante JIT compilado).

Sin embargo, la idea que Java es lenta se cree extensamente. Porqu� �ste es as� que es quiz�s el aspecto m�s interesante de este art�culo.

Miremos varias razones posibles:

* Java circa 1995 era lenta. Las primeras encarnaciones de Java no hicieron Java un recopilador de JIT, y por lo tanto eran bytecode interpretado (como pit�n por ejemplo). Los recopiladores de JIT aparecieron en JVMs de Microsoft, Symantec, y en java1.2 de Sun.

Esta explicaci�n es inveros�mil. La mayor�a de la gente de la computadora puede confundir apagado la velocidad exacta en el gigahertz de los �ltimos procesadores, y ella sigue esta informaci�n mientras que cambia cada mes (y han hecho tan por a�os). Con todo esta explicaci�n pide que creamos que ella no pueda recordar que un cambio solo y algo importante de la velocidad de la lengua ocurri� en 1996.

* Java puede todav�a ser lenta. Por ejemplo, los programas escritos con la clase roscar-segura del vector son necesariamente m�s lentos (en un solo procesador por lo menos) que �sos escritos con la clase roscar-insegura equivalente de ArrayList.

Esta explicaci�n es igualmente unsatisfying, porque C++ y otras idiomas tienen penas similares de la abstracci�n. Por ejemplo, el libro de Kernighan y de Pike la pr�ctica de la programaci�n tiene una tabla con las entradas siguientes, describiendo el funcionamiento de varias puestas en pr�ctica de un programa de proceso de texto:
Versi�n PII de 400 megaciclos
C 0.30 sec
Sec de C++/STL/deque 11.2
Sec de C++/STL/list 1.5

Otro problema evidentemente bien conocido en C++ es los gastos indirectos de volver un objeto de una funci�n (varia el objeto innecesario crea/los ciclos de la copia/del destruct est� implicados).

* El arranque del programa de Java es lento. Mientras que un programa de Java comienza, desabrocha las bibliotecas de Java y compila partes de s� mismo, as� que un programa interactivo puede ser inactivo para los primeros segundos de los pares del uso.

Esto se acerca a ser una explicaci�n razonable para el mito de la velocidad. Pero mientras que puede ser que explique las impresiones del usuario, no explica porqu� muchos programadores (qui�n pueden entender f�cilmente la idea de un programa interpretado que es compilado) comparten la creencia.

Dos de las observaciones m�s interesantes con respecto a esta edici�n son �se:

1. hay una colecci�n de basura similar es el mito lento que persiste a pesar de d�cadas de evidencia por el contrario, y
2. que en tela flamean las guerras, la gente es feliz de discutir sus impresiones de la velocidad para muchas p�ginas sin nunca referir a datos reales.

Juntos �stos sugieren que sea posible que ninguna cantidad de datos alterar� la creencia de la gente, y que en actualidad �stos apresuran creencia probablemente tenga poco a hacer con Java, la colecci�n de basura, o el tema de otra manera indicado. Nuestra respuesta miente probablemente en alguna parte en sociolog�a o psicolog�a. Los programadores, a pesar de su aprecio profesado del pensamiento l�gico, no son inmunes a una clase de mitolog�a, aunque estos mitos particulares son arbitrarios y relativamente inofensivos.

Aqu� est� otra prueba patr�n en Java contra C++

La Java es m�s r�pida que prueba patr�n de C++

http://www.kano.net/javabench/
Esto tambi�n fue cotizada en art�culo de compartimiento de JDJ: http://java.sys-con.com/read/45250.htm

Utilic� G++ (GCC) 3.3.1 20030930 (con el glibc 2.3.2-98) para el C++, con - la bandera O2 (para i386 e i686). Compil� el c�digo de Java normalmente con el recopilador de Sun Java 1.4.2_01, y lo funcion� con el Sun 1.4.2_01 JVM. Funcion� con las pruebas en Red Hat Linux 9/Fedora Test1 con el n�cleo 2.4.20-20.9 en un ordenador port�til T30. El ordenador port�til tiene una viruta m�vil del Pentium 4, 512MB de la memoria, una clase de disco lento.

Los resultados que consegu� eran que Java es perceptiblemente m�s r�pida que C++ optimizado en muchos casos.
El tiempo de lanzamiento de JVM fue incluido en estos resultados. Eso significa incluso con el tiempo de lanzamiento de JVM, Java es todav�a m�s r�pido que C++ en muchas de estas pruebas.

BTW: El art�culo tambi�n liga a las porciones de otras pruebas patrones en el extremo.

Esperanzadamente finalmente he puesto resto al mito de Java soy lento. Es una opini�n, una opini�n evidentemente falsa, no una realidad. Consiga sobre �l.