Scala Meetup WarmUp: 2.12.x慢了?
來自專欄 Industrial functional programming6 人贊了文章
Scala 2.12.x 比 2.11.x 的編譯速度快了不少,但是實測發現Scala 2.12.x變慢了。
sbt clean project benchmark set scalaVersion := "2.11.12" jmh:run -f 1 -i 20 -wi 20 -t 1 Richards[info] Benchmark Mode Cnt Score Error Units[info] Richards.run thrpt 20 7464.953 ± 65.303 ops/ssbt clean project benchmark set scalaVersion := "2.12.6" jmh:run -f 1 -i 20 -wi 20 -t 1 Richards[info] Benchmark Mode Cnt Score Error Units[info] Richards.run thrpt 20 6623.674 ± 51.901 ops/s
在這個評測中,2.11.x的吞吐大約是2.12.x吞吐的1.1倍。
依據 https://github.com/scala/scala-dev/issues/81
我們需要在Scala 2.12.x 中使用這兩個編譯參數,提升所生成位元組碼的性能:
-opt:l:inline
-opt-inline-from
sbt clean project benchmark set scalaVersion := "2.12.6" set scalacOptions in ThisBuild ++= Seq("-opt:l:inline", "-opt-inline-from") jmh:run -f 1 -i 20 -wi 20 -t 1 Richards[info] Benchmark Mode Cnt Score Error Units[info] Richards.run thrpt 20 7456.257 ± 23.585 ops/s
評測代碼見:sadhen/scala-benchmark-starter
更多細節大家可以參與我們的 Meetup 討論哦!
sadhen:Scala Meetup in Hangzhou(九月)
推薦閱讀: