Puede solucionar el tiempo de inicio de JVM abriendo Scala REPL y cargando sus scripts directamente en él con el comando :load
. Esto compila (toma tiempo, pero no lo encuentro en la práctica) el contenido del script y lo carga para usarlo en el REPL. Por ejemplo:
scala> :load testScript.scala
Loading testScript.scala...
import scala.collection.mutable.Map
memory: scala.collection.mutable.Map[Int,Int] = Map()
fib: (Int)Int
res7: Int = 165580141
scala> fib(10)
res1: Int = 55
scala> fib(11)
res2: Int = 89
scala> fib(12)
res3: Int = 144
scala> fib(13)
res4: Int = 233
Por ejemplo, un flujo de trabajo típico al escribir diferentes prototipos en Scala es el siguiente. Tengo un editor de texto abierto en una ventana y Scala REPL en otra. Escribo mi código y luego lo cargo (:load script.scala
). Los resultados producidos por la secuencia de comandos están disponibles de inmediato (como se ve en la transcripción anterior, res7
) y las funciones, clases u objetos definidos en la secuencia de comandos también están disponibles. Y es más rápido que ejecutar scala myScript.scala
ya que la JVM ya está cargada.
Si va por la ruta compilada, use fsc
(el compilador rápido de Scala). La primera vez que se invoca crea un proceso de daemon que compila el código. Por lo tanto, solo tendrá que pagar el precio de puesta en marcha de JVM una vez. Solo tenga en cuenta que si cambia el valor de CLASSPATH
(la variable de entorno), tendrá que reiniciar fsc
(es algo que me ha molestado por un tiempo).
-- Flaviu Cipcigan
Ver también http://stackoverflow.com/questions/1491325/how-to-speed-up-java-vm-jvm-startup-time –