We now run compiler performance tests across every merged pull request to help us catch performance regressions. This was motivated by a big regression in the pre-release version of Scala 2.12 which went unnoticed for months, a situation we don’t want to repeat.
The benchmarks helped us pinpoint which changes were responsible for the regression, and we’ve not only restored the baseline performance, but bettered it by 15-30%. More improvements are planned!
We’re working on benchmarking dotty (friendly competition helps us all!)
Likewise, we’ll start measuring performance of compilation within SBT. This currently has more overhead that we like, another area to profile and tune.
There is scope to parallelize the work in the compiler backend (bytecode generation and optimization), we hope to enable this in Scala 2.13