14

私の Scala/SBT プロジェクトには、コンパイルに最大 5 分 (!) かかるファイルが 1 つあります。他のすべてのものは数秒でコンパイルできます。これにより、開発はかなり苦痛になります。

いくつかの Scala コンストラクトを悪用していることは確かですが、それをデバッグする方法がわかりません。Scala で長いコンパイル時間をデバッグするにはどうすればよいですか?

Scala 2.9.2 と SBT 0.11.2 を使用しています

4

1 に答える 1

20

次の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")

于 2012-10-17T12:20:41.067 に答える