Fork me on GitHub
#tools-build
<
2024-06-08
>
namenu14:06:34

@alexmiller The uberjar task is taking a long time, so I had a time to profile it and found that the JarOutputStream is created without buffer. Decorating with BufferedOutputStream can make it significantly faster (in our case 38s -> 15s), so unless you're intentionally not using it, do you want me to send a patch for it?

Alex Miller (Clojure team)16:06:29

looks like you already have a CA and jira access I filed a jira at that you can attach a patch to: https://clojure.atlassian.net/browse/TBUILD-42 (see https://clojure.org/dev/developing_patches if needed)

Alex Miller (Clojure team)19:06:20

actually I'll get it, I found at least one other place missing it and I want to consolidate the buffer sizing

👍 1
🎉 1
Alex Miller (Clojure team)20:06:47

tools.build v0.10.4 31388ff is now available, thanks for the report!

namenu23:06:31

Oh, great!

bhurlow13:06:48

We’ve been running into this too

bhurlow13:06:10

will report the speed difference here

👍 1
namenu01:06:45

FYI: Our uberjar task execution time goes down from 1:51 to 1:25. Once compile-clj support skipping copy-contents by https://clojure.atlassian.net/jira/software/c/projects/TBUILD/issues/TBUILD-31?jql=project%20%3D%20%22TBUILD%22%20AND%20status%20%3D%20Open%20ORDER%20BY%20created%20DESC, another 5-10s can be saved.

namenu01:06:49

This is a very wild guess, but is it possible to parallelize jar explode? It wouldn't be easy because of conflict resolution, but we're already ignoring all meaningful conflicts.

bhurlow03:06:37

we only saw marginal improvement, maybe 10-20s

bhurlow03:06:50

that ticket would be relevant to our build as well