/ / ¿La velocidad de compilación incremental en Scala depende de la cantidad de clases por archivo? - Scala, compilación

¿La velocidad de compilación incremental en Scala depende de la cantidad de clases por archivo? - Scala, compilación

He escrito mi primer proyecto de tamaño mediano enScala, y ahora estoy un poco preocupado de que el lento tiempo de compilación incremental dentro de Eclipse tenga algo que ver con mi tendencia a poner mis clases en relativamente pocas, grandes .scala archivos.

Mi lógica detrás de esto es la siguiente: Si modifico una clase pequeña dentro de una gran .scala archivo y pulsa guardar, el compilador sólo puede verque el archivo completo se modificó de alguna manera y, por lo tanto, se ve obligado a volver a compilar todo lo que hay 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, son pequeños .scala ¿Los archivos que se prefieren sobre los grandes, o realmente no hay diferencia?

Respuestas

14 para la respuesta № 1

Tienes 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 de 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.