¿La velocidad de compilación incremental en Scala depende de la cantidad de clases por archivo?
compilation (1)
Escribí mi primer proyecto de tamaño mediano en Scala, y ahora me preocupa un poco que el lento tiempo de compilación incremental dentro de Eclipse tenga algo que ver con mi tendencia a poner mis clases en relativamente pocos archivos .scala
grandes.
Mi lógica detrás de esto es la siguiente: si .scala
una clase pequeña dentro de un gran archivo .scala
y .scala
guardar, el compilador podría ver que todo el archivo se modificó de alguna manera, y por lo tanto se ve obligado a recompilar todo lo que está en el archivo junto con las clases dependientes, en lugar de solo la clase modificada y sus clases dependientes.
Entonces, aquí está la pregunta: ¿El número promedio de clases de Scala que colocas en un solo archivo de alguna manera afecta la velocidad de recompilación? O para decirlo de esta manera: en términos de velocidad de recompilación, ¿se .scala
pequeños archivos .scala
sobre los grandes, o realmente no hay diferencia?
Tiene razón: la unidad de seguimiento de dependencias es un archivo. Si realiza cambios en una sola clase, pero su unidad de compilación tiene varias clases, esto activará la recompilación de todos los archivos que dependen de las otras clases en el mismo archivo.
Editar:
Desde 0.13.6 sbt usa un nuevo esquema de hashing de nombres por defecto. Esto permite recompilar solo los archivos que tienen al menos alguna dependencia en un nombre modificado.
Esta es la forma en que Sbt funciona en la línea de comandos, y Eclipse usa el compilador incremental en Sbt.