Conversation
|
Can you report what the difference in the number of libs downloaded is with and without this PR, and their total size in mb/gb? |
|
On main: 73.79MB So saved 7.4MB (that's about 10%) Big changes: It's not just download size and download time. Coursier also has to hash and analyze them. |
If not for the size, I find i good thing to not have these deps on the default classpath. |
|
@lefou this stuff is on the daemon classpath, not on the |
lefou
left a comment
There was a problem hiding this comment.
I didn't have a deep look at the implementation changes and probably wont in a timely manner. Just two small comments below.
| ): (BspServerHandle, BuildClient) = { | ||
| ): (BspServerHandle, AnyRef) = { |
There was a problem hiding this comment.
Can we introduce some type here? AnyRef screams for trouble and doesn't help at all when reading the code.
| import mill.client.lock.Lock | ||
| import mill.util.{BuildInfo, Jvm} | ||
|
|
||
| private object BspIdeaWorkerSupport { |
There was a problem hiding this comment.
Maybe replace the BspIdea with Ide.
|
Context is I'm trying to migrate from Gradle. On cold start it's easily 8x slower on a build. Pretty significant. This triggers on CI or other use cases. Did some profiling and trying to reduce it. So the download size is a thing. A separate topic, but the caching and remote caching has come up in other topics and so far it doesn't really resolve it so I'm trying to tackle cold starts 1st. |
Was looking into cold start performance and Bsp downloads a lot of libs before anything happens (and likely isn't used in a lot of paths).
This moves it to a worker.