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.