2012-10-16 6 views
11

In meinem Scala/SBT-Projekt habe ich eine Datei, die bis zu 5 (!) Minuten dauert, um zu kompilieren. Alle anderen können in wenigen Sekunden kompilieren. Dies macht die Entwicklung ziemlich schmerzhaft.Debug lange kompilieren mal in Scala und SBT

Ich bin sicher, dass ich einige Scala-Konstrukte missbrauche, aber ich habe keine Ahnung, wie man es debuggt. Wie debuggt man lange Übersetzungszeiten in Scala?

Ich bin mit Scala 2.9.2 und SBT 0.11.2

+2

Lange Kompilierungszeiten haben kann viele Gründe nutzen können. Ohne den Code zu posten, bezweifle ich, dass Sie viel Hilfe bekommen werden. Ein erster Schritt könnte sein, die Datei in mehrere zu teilen und zu sehen, welche Teile am längsten kompilieren. Das hilft auch bei _re_compilation Zeiten. –

+1

Ich kann die Datei nicht aufschlüsseln, ohne viel Code umzuformen, da sie nur eine Klasse enthält. Ich bin mehr daran interessiert zu sehen, ob es eine Flagge gibt, die ich im Compiler aktivieren kann, die mir mehr Hinweise geben kann, wo das Problem liegt. – Eyal

+1

Gut genug, aber Sie können die Klasse in Merkmale aufteilen, ohne den Rest des Codes zu berühren. –

Antwort

10

Sie können folgende Scala Compiler-Optionen versuchen:

  • -Ystatistics Drucken Compiler Statistiken

eine Phase finden, die benötigt die meiste Zeit. Dann versuchen, diese:

  • -Xprint:<phase> Print out-Programm nach oder "alle"
  • -Yshow-trees Preise durch Bäume, wenn sie in Verbindung mit -Druck verwendet: Phase
  • -Ydebug Output-Debugging-Nachrichten
  • -Ypmat-debug Trace alle Muster Matcher-Aktivität.

Um diese Einstellungen direkt von der SBT-Konsole aktivieren Sie set scalacOptions in ThisBuild += "-Ystatistics" oder für mehr als eine, set scalacOptions in ThisBuild ++= Seq("-Yshow-trees", "-Ydebug)

Verwandte Themen