16

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

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

那么问题来了:放在一个文件中的 Scala 类的平均数量是否会以任何方式影响重新编译速度?或者这样说:在重新编译速度方面,是小.scala文件优先于大文件,还是真的没有区别?

4

1 回答 1

14

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

编辑:

从 0.13.6 开始,sbt 默认使用新的名称哈希方案。这允许仅重新编译至少对修改后的名称具有某种依赖性的文件。

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

于 2012-08-27T12:35:02.730 回答