2013-01-08 3 views
7

Ich habe einen Benchmark für die Kompilierungszeit auf Scala 2.10.0 und 2.9.2 gemacht, und festgestellt, dass 2.10.0 dauerte länger Kompilierungszeit als 2.9.2.In welchem ​​Fall kann der Scala 2.10.0 Compiler schneller oder langsamer als 2.9.2 sein?

In welchem ​​Fall passiert es? Oder kann der Scala 2.10.0 Compiler aus bestimmten Gründen generell langsamer als 2.9.2 sein?

+2

Ich habe jetzt mehrere Projekte mit beiden Versionen kompiliert. 2,10 scheint im Durchschnitt zwischen 5% und 10% langsamer zu sein. Für saubere Builds hatte ich 50, 65, 70 Sekunden in 2.9.2, verglichen mit 55, 70, 72 Sekunden in 2.10. Mit anderen Worten, die Geschwindigkeit ist mehr oder weniger die gleiche (besonders wenn inkrementelles Bauen verwendet wird), obwohl ich erwarte, dass 2.10.1 einige Optimierungen haben wird. Die einzige Hauptkomponente, die in 2.10 geändert wurde, ist der Pattern Matcher. Ansonsten gibt es wahrscheinlich noch ein paar Konditionalitäten für die neuen Features, SIP-18 etc. Performance Tuning ist das Ziel für 2.11. –

+0

Sicher werden Sie verstehen, dass es schwierig ist, Ihnen ohne weitere Informationen zu antworten. Was war dein Maßstab? Gibt es mindestens Open-Source-Projekte, auf die Sie bei Scala-Versionen unterschiedliche Kompilierungsgeschwindigkeiten anwenden können? – huitseeker

+0

@ 0__ 2.11 Release ist etwas mehr als 1 Jahr entfernt nach Straßenkarte. Habe noch deine 5-10% langsamere Beobachtung zu bestätigen; bedauerlich, wenn das der Fall ist - Multi-Projekt-Builds oder Bust. – virtualeyes

Antwort

0

Bei erstmaligem sbt Start + clean/kompilieren 2.10 erscheinen als 2.9.x schneller seine

jedoch auf nachfolgende clean/Compile-Zyklen auf 2,10, mal gleich bleiben, im Gegensatz zu 2.9.x wo Caches das kommt rette und reduziere sauber/kompilieren Zyklen erheblich.

Zum Beispiel, ich habe ein Kernprojekt Setup sowohl auf 2.9.2 und 2.10 (37 scala, 6 java)

Das 2.9.2 Projekt nimmt @ 50 Sekunden auf anfängliche sauber/kompilieren; 15 bis 20 Sekunden max danach

[warn] 6 warnings found 
[success] Total time: 16 s 

Das 2.1.0 Projekt nimmt @ 40 Sekunden anfängliche clean/kompilieren; @ 40 Sekunden danach.

[warn] 14 warnings found 
[success] Total time: 45 s 

Beachten Sie, dass das 2.9.2-Projekt 6 Warnungen generiert; das 2.10 Projekt, 14 Warnungen.

Wäre schön, andere Ergebnisse in diesem Thread zu sehen, nur gerade mit dem Testen begonnen.

Wir freuen uns nicht, die gesamte Anwendung auf 2.10 zu konvertieren - die aktuelle Buildzeit ist @ 100 Sekunden auf 2.9.2; sollte 200-300 + Sekunden auf 2.10 sein, wenn der obige Trend gilt, yikes.

Verwandte Themen