Pregunta

¿El SBT hacer uso de FSC?

Para fines de prueba Estoy compilando un programa de 500 líneas en una máquina Ubuntu bastante lento (Atom N270). Tres veces sucesivas compilación eran 77s, 66s, 66s y.

Me compila el archivo con fsc desde la línea de comandos. Ahora mis tiempos eran 80s, 25s, 18s. ¡Mejor! Eso implica que me SBT es no utilizando fsc. Estoy en lo cierto? Si es así, ¿por qué no usarlo?

Me puede intentar conseguir SBT a utilizar explícitamente FSC para compilar, aunque no estoy seguro de que dará cuenta de la configuración. Alguien ha hecho esto?

¿Fue útil?

Solución

SBT no puede beneficiarse de la Scala de compilación rápida cuando se ejecuta de forma interactiva (con o sin el uso de su modo de integración continua) porque las clases compilador Scala se cargan y obtener "calienta" y JIT-ed, que es la totalidad de la fsc ventaja.

Otros consejos

Esta discusión me di cuenta de que he estado usando sbt por el camino equivocado.

En lugar de (desde la línea de comandos):

$ sbt compile
$ sbt test

.. hay que tener sbt correr y tratarlo como el símbolo del sistema.

$ sbt
> compile
  ...
> test

Tiene el historial de comandos e incluso posibilidad de volver sumergirse en la línea de comandos del sistema operativo. Escribí esta 'respuesta' para otros como yo (que viene de una mentalidad Makefile) que no se dan cuenta que estamos tomando la píldora todo mal. :)

(Sigue siendo lento, sin embargo.)

Al menos por SBT 0.7.x los autores explican que no es tan rápido como el FSC, que almacena la instancia compilador (incluyendo las bibliotecas cargadas), en lugar de sólo las clases compilador compilados JIT:

http://code.google.com/p/simple- la acumulación de herramienta / wiki / ChangeDetectionAndTesting

Mi experiencia confirma también que el FSC es más rápida para las compilaciones completas, pero no selecciona automáticamente qué recompilar.

Para SBT 0,10, no puedo encontrar ninguna documentación alguna sobre este tema.

No es necesario volver a hacerlo. SBT tiene su propio camino ahora:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top