Tengo curiosidad, ¿hay una JVM que se ejecuta como un demonio del sistema operativo y se bifurca cuando se debe iniciar un nuevo proceso (es decir, como init o zygote process en Android)? Si no, ¿por qué no? No estoy hablando de un subproceso daemon dentro de la JVM.
La razón por la que pregunto es porque el tiempo de inicio de la JVM es bastante lento e incurre en un alto costo para las secuencias de comandos.
Respuesta aceptada:
El tiempo de inicio de JVM es bastante lento e incurre en un alto costo en la creación de scripts. . . gran optimización para el tiempo de inicio del proceso java.
Las otras respuestas responden a la pregunta con respecto al inicio de la aplicación genérica, que son consideraciones útiles.
Pero parece que su pregunta principal es el rendimiento de inicio de la aplicación Java con respecto a la sobrecarga de iniciar un jvm. Esta ha sido también mi pregunta. Encontré esto:
Si está dispuesto a sacrificar la seguridad de separación de usuarios, consulte Nailgun, un Java increíblemente rápido:
Nailgun es un cliente, protocolo y servidor para ejecutar programas Java desde la línea de comandos sin incurrir en la sobrecarga de inicio de JVM. Los programas se ejecutan en el servidor (que se implementa en Java) y son activados por el cliente (escrito en C), que maneja todas las E/S.