2011-05-26 17 views
5

¿Cuáles son las diferencias al iniciar una aplicación a través del comando plain java, contra invocar directamente la JVM a través de libjvm.so en Linux o jvm.dll en Windows?Diferencia entre 'java' y 'libjvm.so' (Linux) o 'jvm.dll' (Windows)?

Recientemente vi en un foro que comenzar el eclipse usando el archivo dll o .so dará un mejor rendimiento. Me gustaría saber cómo sucede esto.

Gracias.

+1

No creo que haya mucha diferencia de rendimiento. ¿Podría vincular a ese reclamo en el foro? –

+0

@joachim Lo siento, no puedo recordar la publicación del foro. Lo vi en algún momento atrás y lo tuve en el fondo de mi mente. Pero, esta entrada de StackOverflow también indica que la pantalla de bienvenida viene más rápido con jvm.dll (consulte la primera respuesta, sección de notas). También establece un conjunto de ventajas también. [enlace] (http://stackoverflow.com/questions/316265/tricks-to-speed-up-eclipse). –

Respuesta

3

Normalmente, los usuarios compilan contra jvm.dll si desean ajustar su propia funcionalidad en torno a un núcleo de Java, donde a veces es difícil hacer cosas que parecen "nativas" de Java. Un buen ejemplo es, de hecho, Eclipse, en el que quieren abrir una pantalla emergente y realizar otras acciones antes de iniciar. Para otros productos, es que Java es solo una pequeña parte de su carga de trabajo (por ejemplo, una gran aplicación de C++ que necesita conectarse a Java en algún momento).

Desde el punto de vista del rendimiento, es irrelevante. Se trata de cómo quieres el "ajuste y acabado" para cosas como Eclipse.

3

El link habla de la puesta en marcha de Eclipse; es probable que esto sea más rápido porque, al usar el argumento -vm para especificar el JRE, el ejecutable de Eclipse no tiene que buscar en el sistema un JRE apropiado para iniciar (lo que incurriría en E/S de disco y posiblemente implique detectar la versión del JRE). No está acelerando Java, está acelerando el native launcher.

+1

Estoy de acuerdo con usted con respecto a la detección de JRE. Usé -vm para apuntar a bin/java en lugar de jvm.dll o libjvm.so hasta que encontré el enlace que señalé. Mi pregunta era sobre la diferencia entre estos dos. Como dijiste, la opción ausente -vm será más lenta. Pero lo que quería saber es la diferencia entre usar -vm para apuntar al ejecutable java y jvm.dll. Gracias ! –

Cuestiones relacionadas