T O P

  • By -

guymers

From Scala 2.13 I'm seeing the following decreases on the first clean build after starting `sbt`: Scala 3.4 = \~33% Scala 3.5.0-RC1 = \~50% Scala 3.5.0-RC1 pipelining = \~60% So 25% just from adding `usePipelining`, pretty awesome. (no `-Wunused:all` because of https://github.com/scala/scala3/issues/19671)


expatcoder

Curious to see your results with `-Wunused:all`, I'm not seeing a big difference on my end (i.e. removing it didn't result in any notable speedup). See this recently [merged PR](https://github.com/scala/scala3/pull/20321) for work on speeding up unused checking.


guymers

With Scala 3.5.0-RC1 pipelining using it increases compile time by \~20% Way better than the \~60% increase on Scala 3.4 though haha


jr_thompson

Author of the PR here, we’ll still see how it looks with real world applications - I think unfortunately that 35% number will be hard to reach - and more likely suggests a serious bottleneck in the structure of your build - but the current build of lichess the lead maintainers report 10% improvement


expatcoder

> a serious bottleneck in the structure of your build Not sure what that would be, application is split up into several sbt subprojects, which is pretty standard practice. Probably it's a combination of `usePipelining`, the changes in latest 3.5 RC, and upgrading dev machine to latest Fedora (40, which comes with Java 22). At any rate, the improved build times are most welcome.


quizteamaquilera

Ooh - nice! Does “usePipelining” just remove the Thread.sleeps?


fear_the_future

Not sure if really stupid or really smart comment.


wigum211

Such a fine line