La JVM de Sun viene en dos formas: -client
y -server
, donde se supone que la máquina virtual de servidor está optimizada para procesos de larga ejecución, y se recomienda para aplicaciones de servidor.¿Cómo me aseguro de estar utilizando la JVM "servidor"?
Cuando corro java
sin parámetros, muestra las opciones de uso, que incluye el texto siguiente:
The default VM is server, because you are running on a server-class machine.
Habiendo visto esto, no me molestó para añadir el -server
al comando de inicio de proceso.
Sin embargo, en un registro reciente bloqueo de JVM, me di cuenta de la línea siguiente cerca del final del archivo:
vm_info: Java HotSpot(TM) Client VM (14.0-b16) for linux-x86 JRE (1.6.0_14-b08), built on May 21 2009 02:01:47 by "java_re" with gcc 3.2.1-7a (J2SE release)
Me parece que Java está utilizando el VM cliente, a pesar de lo que dice en el mensaje de ayuda Voy a agregar la opción -server
a mi comando de inicio, pero ahora estoy sospechoso. Entonces mi pregunta es: ¿hay alguna manera de asegurarme de que la máquina virtual en la que estoy corriendo sea realmente la máquina virtual del servidor, sin recurrir a forzar un bloqueo JVM?
El sistema operativo es ubuntu 8.04, pero estoy usando JDK 1.6.0_14 que descargué del sitio web de Sun.
Por el De esta manera, soy consciente de que la pregunta parece más apropiada para ServerFault, pero espero que la respuesta sea unas pocas líneas de código Java, por lo que parece que los programadores tienen una mejor oportunidad de responder. – itsadok
Siento la necesidad de señalar que el hecho de ejecutar "java" sin argumentos está usando la máquina virtual del servidor, eso no garantiza que cualquiera secuencia de comandos/comandos que se ejecute, el proceso que se colgó no especifique la máquina virtual del cliente como argumento. –