2013-01-08 11 views
7

Zrobiłem test porównawczy dla czasu kompilacji w Scala 2.10.0 i 2.9.2, i odkryłem, że 2.10.0 trwało dłuższy czas kompilacji niż 2.9.2.W takim przypadku kompilator Scala 2.10.0 może być szybszy lub wolniejszy niż 2.9.2?

W takim przypadku to się dzieje? Czy może kompilator Scala 2.10.0 z pewnych powodów generalnie wolniej niż w wersji 2.9.2?

+2

Mam skompilowane wiele projektów teraz w obu wersjach. 2.10 wydaje się być średnio o 5% do 10% wolniejsze. Dla czystych buildów miałem 50, 65, 70 sekund w 2.9.2, w porównaniu do 55, 70, 72 sekund w 2.10. Innymi słowy, prędkość jest mniej więcej taka sama (szczególnie w przypadku budowania przyrostowego), chociaż spodziewałbym się, że 2.10.1 będzie miał pewne optymalizacje. Jedynym ważnym elementem, który został zmieniony w 2.10, jest szablon matujący. W przeciwnym razie prawdopodobnie istnieje kilka dodatkowych warunków dla nowych funkcji, SIP-18 itd. Dostrajanie wydajności jest celem 2.11. –

+0

Z pewnością zrozumiesz, że ciężko Ci odpowiedzieć bez dodatkowych informacji. O czym był twój benchmark? czy istnieją co najmniej projekty open source, które można wskazać na pokazywanie różnych prędkości kompilacji w różnych wersjach scala? – huitseeker

+0

@ 0__ 2.11 wydanie jest nieco ponad 1 rok od drogi według mapy drogowej. Muszę jeszcze potwierdzić twoją 5-10% wolniejszą obserwację; niefortunne, jeśli tak jest - wieloprojektowe kompilacje lub biust. – virtualeyes

Odpowiedz

0

Na pierwszym uruchomieniu SBT + czystych kompilacji/2.10 pojawia się szybciej niż 2.9.x

Jednak na kolejny czysty/kompilowania cykli na 2,10, czasy są takie same, w przeciwieństwie do 2.9.x gdzie buforuje przychodzi do ratowanie i znacznie zmniejszyć cykle czyszczenia/kompilacji.

Na przykład, ma konfigurację projektu rdzeń zarówno pkt 2.9.2 i 2,10 (37 scala 6 Java)

Projekt 2.9.2 wykonuje @ 50 sekundy początkowy czysty/przełożony; Od 15 do 20 sekund, po czym później

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

Projekt 2.1.0 trwa @ 40 sekund przy początkowym czyszczeniu/kompilacji; @ 40 sekund później.

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

Należy pamiętać, że projekt 2.9.2 generuje 6 ostrzeżeń; projekt 2.10, 14 ostrzeżeń.

Byłoby miło zobaczyć inne wyniki w tym wątku, dopiero rozpoczęte testy.

Z niecierpliwością na konwersję całej aplikacji na 2,10 - bieżący czas budowy wynosi @ 100 sekund w 2.9.2; powinno być 200-300 + sekund na 2,10, jeśli powyższy trend utrzymuje się, yikes.

Powiązane problemy