2011-07-22 24 views
5

Duplicar posible:
How to speed up Java VM (JVM) startup time?¿Cómo hacer que JVM arranque más rápido?

estoy escribiendo una utilidad de línea de comandos en Java (o probablemente en otro lenguaje basado en JVM). El problema es el tiempo de puesta en marcha de JVM. JVM comienza más lento que Python y Ruby, por ejemplo.

¿Cómo hacer que JVM stat sea más rápido? ¿Puedo cargar JVM "de antemano" (en Linux y Windows) de alguna manera para que no se cargue cada vez que ejecuto mi utilidad en la línea de comandos?

+0

¡Tengo curiosidad por saber cómo hacer esto también! Yo diría que adelgace sus archivos jar dependientes, pero espero que alguien pueda ayudar con más conocimiento. –

+1

En mi máquina, un programa "HelloWorld" tarda 40 ms en cargar/ejecutar/finalizar. ¿Qué tan rápido necesitas que sea? –

+1

@ Peter, comienzo frío o caliente? –

Respuesta

5

Nailgun es probablemente la mejor solución - que mantiene una instancia JVM corriendo entonces puede ser llamado por sus comandos (usando un cliente de C superligeros).

Como una opción alternativa o adicional, es posible que desee intentar actualizar a Java 7 si aún no lo ha hecho: ha habido bastantes mejoras en el tiempo de inicio.

+0

Usamos Jruby en el trabajo y el tiempo de inicio de jvm y la carga de objetos de resorte es la parte rezagada. Cambiamos a la configuración de NailGun del servidor cliente recientemente y tenemos una velocidad de mejora de 2 veces más. ¡Lo amamos! –

3

Para cargar JVM por adelantado puede usar Drip. Mantiene una JVM nueva configurada en reserva con la ruta de clases correcta y otras opciones de JVM para que pueda conectarse y usarla rápidamente cuando sea necesario, luego deséchela. Drip ajusta las opciones de JVM y almacena información sobre cómo conectarse a la JVM en un directorio con el valor hash como su nombre.

+0

Gracias hombre .... Tengo este requisito básico y luego quiero un conjunto de jvms/uno nuevo tan pronto como me haya conectado con el uno o el último (tengo que perfilar y juzgar la estrategia) Y luego Necesito round robin/otra forma de seleccionar jvm también si voy a varias rutas de jvm. Tiene algo así ya construido/extendiendo "goteo". ¿Cómo voy a cerrar el jvm? cualquier otro recurso? wiki es escaso. –

+0

Los obtuve, creo que de la secuencia de comandos sh. –

Cuestiones relacionadas