-
Notifications
You must be signed in to change notification settings - Fork 321
Closed
Description
sbt 1.10.6, which uses coursier 2.1.19 sbt/sbt#7920, has performance regression in the update task, as reported in sbt/sbt#7945
In sbt 1.10.5 with coursier 2.1.14 (1 second):
$ gh repo clone wvlet/wvlet
$ cd wvlet
# Edit project/build.properties to use sbt 1.10.5
$ ./sbt
sbt:wvlet> runner/update
[success] Total time: 1 s, completed Dec 13, 2024, 11:08:53 AM
In sbt 1.10.6 with coursier 2.1.19 (59 seconds):
# Edit project/build.properties to use sbt 1.10.6
sbt:wvlet> runner/update
[success] Total time: 59 s, completed Dec 13, 2024, 11:12:14 AM
-- The second run still takes longer time than sbt 1.10.5
sbt:wvlet> runner/update
[success] Total time: 6 s, completed Dec 13, 2024, 11:13:36 AM
Problem
Resolving some of the Java dependencies (Trino -> Apache Hadoop related dependencies?) in this build.sbt takes quite a long time. It was 1 second in sbt 1.10.5, but sbt 1.10.6 requires almost 1 minute:
https://github.com/wvlet/wvlet/blob/2987497fbc906149bb77c2a77d600b7f6270e2e9/build.sbt#L338-L355
Even after the first update run, there is still significant overhead.
This slowness can be reproduced with cs resolve command:
$ cs version
2.1.21
$ time cs resolve -q io.trino:trino-hive:467
...
cs resolve -q io.trino:trino-hive:467 24.91s user 0.56s system 100% cpu 25.341 total
He-Pin and jokellyfenton
Metadata
Metadata
Assignees
Labels
No labels