2013-01-08 75 views
7

我在Scala 2.10.0和2.9.2上編譯了一段時間的基準,並且發現2.10.0比2.9.2編譯時間長Scala 2.10.0編譯器在哪種情況下可能比2.9.2更快或更慢?

在哪種情況下會發生?或者出於某些原因,Scala 2.10.0編譯器一般會慢於2.9.2嗎?

+2

我已經編譯了兩個版本的多個項目。 2.10的平均值似乎在5%到10%之間。對於乾淨的版本,我在2.9.2中有50,65,70秒,而在2.10中爲55,70,72秒。換句話說,速度差不多(特別是在使用增量建築時),儘管我期望2.10.1會有一些優化。在2.10中改變的唯一主要組件是模式匹配器。否則,對於新功能SIP-18等,可能會有更多的條件。性能調整是2.11的目標。 –

+0

當然,你會明白,沒有更多的信息很難回答你。你的基準是什麼?是否至少有開源項目可以指出在scala版本中展示不同的編譯速度?根據路線圖, – huitseeker

+0

@ 0__ 2.11版本稍微超過1年。尚未確認你的觀察速度慢5-10%;不幸的是,如果是這樣的話 - 多項目建設或蕭條。 – virtualeyes

回答

0

在初始SBT開始+清潔/編譯2.10似乎比2.9.x更快

然而,在隨後的清潔/編譯循環上2.10,時間保持相同,不像2.9.x其中高速緩存涉及到挽救並顯着減少清潔/編譯週期。

例如,我有兩個2.9.2和2.10(37階,6 JAVA)

的2.9.2項目以@上50秒的核心項目設置初始乾淨/編譯;此後最多15到20秒

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

2.1.0項目在初始清理/編譯時需要@ 40秒; @此後40秒。

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

應該注意2.9.2項目會產生6個警告; 2.10項目,14個警告。

很高興看到此線程中的其他結果,只是剛開始測試。

不期待將整個應用程序轉換爲2.10 - 當前編譯時間爲2.9.2上@ 100秒;如果上述趨勢持續,則在2.10時應爲200-300 +秒。

相關問題