Отладка долгого времени компиляции в 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)