Pregunta

Me he estado preguntando acerca de las mejoras de rendimiento se promociona en Java SE 6 - es en el compilador o el tiempo de ejecución?Dicho de otra manera, sería un Java 5 aplicación compilada por el JDK 6 ver una mejora de la ejecución en virtud de JSE 5 (que indica una mejora de la optimización del compilador)?Sería un Java 5 aplicación compilada por JDK 5 véase una mejora de la ejecución en virtud de JSE 6 (que indica una mejora de tiempo de ejecución de la optimización)?

Me he dado cuenta de que la compilación bajo el JDK 6 lleva casi dos veces tan largo como hicieron en el JDK 5 de la misma base de código;Tengo la esperanza de que al menos algunos de los que el tiempo extra que se gasta en las optimizaciones del compilador, esperemos que conduce a la más eficiente de los Frascos y las Guerras.La JDK de Sun info en realidad no entrar en detalles sobre las mejoras de rendimiento que hemos hecho - supongo que es un poco de la columna a, y un poco de la columna B, pero me pregunto cual es la mayor influencia.¿Alguien sabe de alguna pruebas en JDK 6 vsJDK 5?

¿Fue útil?

Solución

No he oído hablar de mejoras en el compilador, pero se ha publicado información sobre el tiempo de ejecución de mejoras de rendimiento.

Guía de migración:

[http://java.sun.com/javase/6/webnotes/adoption/adoptionguide.html]

El rendimiento de las notas del producto:

[http://java.sun.com/performance/reference/whitepapers/6_performance.html]

Otros consejos

javac, que compila a partir de código fuente Java a bytecode, hace casi ninguna optimización.De hecho, la optimización a menudo hacer que el código sea realmente funcione más lento por ser más difícil de analizar para la posterior optimización.

La única diferencia significativa entre el código generado para el 1.5 y el 1.6 es que, con el objetivo 1.6 extra que se agrega información sobre el estado de la pila para que la verificación sea más fácil y más rápido (Java ME hace tan bien).Esto sólo afecta a la clase de las velocidades de carga.

El real optimización de la parte es el compilador hotspot que compilar bytecode a código nativo.Esta es, incluso, actualizado en algunas versiones de actualización.En Windows sólo el más lento cliente C1 versión de hotspot se distribuye en el JRE de forma predeterminada.El servidor C2 hotspot se ejecuta más rápido (uso -servidor en la línea de comandos de java), pero es más lento para iniciar y utiliza más memoria.

También las bibliotecas y herramientas (incluyendo javac) a veces optimización del trabajo realizado.

No sé por qué usted está encontrando el JDK 6 más lento para compilar el código de JDK 5.Hay una sutil diferencia en la configuración?

Sus casi 100% el tiempo de ejecución.Si bien es posible que algunos de compilación básica trucos para hacer en el compilador de Java en sí, no creo que hay mejoras significativas entre Java 1.5 y 1.6.

Ha habido un montón de nuevas mejoras y optimización en la nueva máquina virtual de java.De modo que la parte principal verás la mejora del rendimiento es mientras se ejecuta la versión de java con la versión 6 de la jvm.

Compilación de antiguo código java con el Java JDK 6 probablemente rendimiento código más eficiente, pero las principales mejoras se encuentran en la máquina virtual, al menos eso es lo que yo he notado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top