私の Scala/SBT プロジェクトには、コンパイルに最大 5 分 (!) かかるファイルが 1 つあります。他のすべてのものは数秒でコンパイルできます。これにより、開発はかなり苦痛になります。
いくつかの Scala コンストラクトを悪用していることは確かですが、それをデバッグする方法がわかりません。Scala で長いコンパイル時間をデバッグするにはどうすればよいですか?
Scala 2.9.2 と SBT 0.11.2 を使用しています
次のScalaコンパイラオプションを試すことができます。
-Ystatistics
コンパイラ統計を印刷する最も時間がかかるフェーズを見つけます。次に、それらを試してください:
-Xprint:<phase>
「すべて」の後にプログラムを印刷する-Yshow-trees
-print:phaseと組み合わせて使用すると、詳細なツリーが表示されます-Ydebug
デバッグメッセージを出力する-Ypmat-debug
すべてのパターンマッチャーアクティビティをトレースします。これらの設定をsbtコンソールから直接有効にするには、、set scalacOptions in ThisBuild += "-Ystatistics"
または複数の設定を使用できます。set scalacOptions in ThisBuild ++= Seq("-Yshow-trees", "-Ydebug")