2012-08-27 11 views
16

私は最初の中規模のプロジェクトをScalaに書いています。Eclipse内での遅いコンパイル時間が、私のクラスを比較的小さい、大きなサイズの.scalaファイルに入れる傾向があると少しは心配しています。Scalaのインクリメンタルコンパイル速度はファイルごとのクラスの数に依存しますか?

私の大きな論点は次の通りです。.scalaという大きなファイルの中の小さなクラスを修正してsaveを押すと、ファイル全体が何らかの形で修正されていることがわかります。変更されたクラスとそれに依存するクラスの代わりに、依存するクラスとともにファイルを作成します。

ここで質問します:1つのファイルに入れたScalaクラスの平均数は、再コンパイルの速度に影響しますか?または、このようにしてください:再コンパイルの速度に関しては、小さいものが大きいものよりも小さいファイル.scala、または本当に違いはありませんか?

答えて

14

あなたが正しいです:依存関係の追跡単位はファイルです。 1つのクラスに変更を加えるが、コンパイル単位に複数のクラスがある場合、同じファイル内の他のクラスに依存するすべてのファイルの再コンパイルがトリガーされます。

編集:

0.13.6 SBTがデフォルトで新しい名前-ハッシュ方式を使用しているため。これにより、変更された名前に少なくともある種の依存関係を持つファイルのみを再コンパイルすることができます。

これはSbtがコマンドラインで動作する方法で、EclipseはSbtでインクリメンタルコンパイラを使用します。

+0

これはどこかの大きなバナーに置いてください! –

+0

これは後でなく早く修正されることを願っています。しかし、私は同意する必要があります。 –

関連する問題