Scala中的增量编译速度是否取决于每个文件的类数?

时间:2012-08-27 09:57:25

标签: scala compilation

我在Scala编写了我的第一个中型项目,现在我有点担心Eclipse中缓慢的增量编译时间可能与我将我的类放在相对较少的大{{1}中的倾向有关。文件。

我背后的逻辑如下:如果我在一个大.scala文件中修改一个小类并点击保存,编译器可能只会看到整个文件被某种方式修改,因此被迫重新编译所有内容它与依赖类一起存在于文件中,而不仅仅是修改后的类及其依赖类。

所以这就是问题:您放在单个文件中的Scala类的平均数量是否会影响重新编译速度?或者这样说:就重新编译速度而言,小.scala文件比大文件更受欢迎,还是没有区别?

1 个答案:

答案 0 :(得分:14)

你是对的:依赖关系跟踪单位是一个文件。如果对单个类进行更改,但编译单元有多个类,则会触发重新编译依赖于同一文件中其他类的所有文件。

编辑:

  

由于0.13.6 sbt默认使用新的名称散列方案。这允许仅重新编译至少对修改后的名称具有某种依赖性的文件。

这是Sbt在命令行上运行的方式,Eclipse在Sbt中使用增量编译器。