Отладка долгого времени компиляции в Scala и SBT

В моем проекте Scala/SBT у меня есть один файл, который компилируется за 5(!) Минут. Все остальные могут скомпилироваться за несколько секунд. Это делает развитие довольно болезненным.

Я уверен, что злоупотребляю некоторыми конструкциями Scala, но я понятия не имею, как его отладить. Как отлаживать длинные времена компиляции в Scala?

Я использую Scala 2.9.2 и SBT 0.11.2

1 ответ

Решение

Вы можете попробовать следующие параметры компилятора 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)

Другие вопросы по тегам