回答

15

奇怪,有一個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倍。

結果留下......混合的感覺。

+13

很高興能從scala編譯器的作者那裏獲得關於scala 2.11這個標誌狀態的明確答案 –

相關問題