2020年11月現在のScala 3(Dotty)とScala 2のコンパイル速度比較

最初に結論

Scala 2.13.33.0.0-M2-bin-20201031-1ab76c1-NIGHTLY をscalaz最新版でベンチマークしたところ、

Scala 2.13.3は平均約57秒Scala 3の最新版は平均約31秒

約45%短縮!!!

めでたいなぁ。 他の条件で計測した場合にどうなるのかわからないが、このままの速度を維持して欲しい。

以下詳細な条件や結果記載。

条件

以下、特に記載がなければ、最初の遅い一定数16回分を除いて計算した値

Scala 2.13.3

  • 最大 62
  • 最小 54
  • 平均 56.89
  • 中央値 56
  • 実行順の値(最初の遅いやつ含む) 157, 91, 75, 66, 66, 59, 65, 57, 58, 63, 57, 60, 55, 61, 55, 60, 56, 62, 55, 55, 59, 55, 60, 55, 60, 55, 59, 54, 61, 55, 54, 59, 54, 59, 54, 59, 54, 59, 54, 61, 55, 54, 60, 54, 59
  • 実行時間の小さい順にソートしたもの 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 56, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 61, 61, 62

Dotty 0.27.0-RC1

  • 最大 43
  • 最小 34
  • 平均 37.68
  • 中央値 39
  • 実行順の値(最初の遅いやつ含む) 114, 68, 63, 49, 46, 39, 46, 39, 42, 39, 35, 36, 40, 35, 40, 35, 41, 35, 40, 36, 41, 36, 41, 35, 40, 39, 34, 35, 43, 37, 40, 35, 40, 35, 39, 36, 40, 34, 40, 36, 40, 37, 35, 34, 39
  • 実行時間の小さい順にソートしたもの List(34, 34, 34, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 43

Scala 3.0.0-M2-bin-20201031-1ab76c1-NIGHTLY

  • 最大 37
  • 最小 30
  • 平均 31.37
  • 中央値 31
  • 実行順の値(最初の遅いやつ含む) 96, 60, 61, 48, 43, 39, 35, 33, 33, 32, 38, 35, 30, 30, 31, 32, 31, 31, 32, 30, 36, 30, 30, 32, 30, 30, 30, 30, 31, 31, 33, 30, 30, 36, 30, 30, 31, 31, 37, 30, 32, 30, 30, 36, 30
  • 実行時間の小さい順にソートしたもの 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 32, 32, 32, 33, 36, 36, 36, 37