我試過用版本2.7.7的scalac -optimise
。那時我從來沒有得到任何的性能改進,但是編譯時間更長。'optimize'scala編譯器標誌是做什麼的?
Scala 2.9.0的情況會好嗎?國旗目前正在進行哪些優化?
我試過用版本2.7.7的scalac -optimise
。那時我從來沒有得到任何的性能改進,但是編譯時間更長。'optimize'scala編譯器標誌是做什麼的?
Scala 2.9.0的情況會好嗎?國旗目前正在進行哪些優化?
奇怪,有一個similar question on the scala-user group:
Rex Kerr回答的時間(5月):
我從來沒有發現那裏的生產代碼是顯著通過 加快的情況下使用
-optimise
,至少當使用Sun JVM時。我認爲在某些情況下可能發生 的情況,但它似乎將類似的優化應用於JVM已經具有的功能。也許如果優化深度有限制,則使用-optimise的 將刪除幾個圖層,然後允許JVM獲得更少的一個 。但我大多甚至懶得測試它,考慮到很多情況下(幾十次)我已經嘗試過,運行時並沒有改變 。我預計它會對更保守的虛擬機(例如 JRockit)或不太成熟的虛擬機(例如Dalvik)產生影響。
Ismael Juma補充說:
Scala的分佈實際上是與-optimise編譯,但確確實實 它,除非參數傳遞給scalac上不是。
它還不夠成熟,還是會導致錯誤,改變語義等?
據我瞭解,車隊決定保守,使 只爲斯卡拉分發(Scala中 2.8.0)的第一步。也許最好在下一個 主要版本中考慮擴展它。
對於 '-optimise
'(在其它因素)在Scala2.9的影響,請參閱本scala-language thread called "Scala2.9 slower?"。
我有點擔心。看到
-optimize
確實在2.9.0上優化了「理解」,然後我對代碼進行了基準測試,發現它比2.8.1慢了2.5倍。
結果留下......混合的感覺。
很高興能從scala編譯器的作者那裏獲得關於scala 2.11這個標誌狀態的明確答案 –