tools-build

namenu 2024-06-08T14:54:34.640899Z

@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) 2024-06-08T16:39:01.792549Z

sure!

Alex Miller (Clojure team) 2024-06-08T16:45:29.347019Z

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) 2024-06-08T19:25:20.676279Z

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) 2024-06-08T20:12:47.651669Z

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

namenu 2024-06-08T23:50:31.886769Z

Oh, great!

2024-06-10T13:28:48.039469Z

We’ve been running into this too

2024-06-10T13:31:10.786939Z

will report the speed difference here

👍 1
Alex Miller (Clojure team) 2024-06-12T00:29:44.662129Z

How’d it go?

namenu 2024-06-12T01:46:45.697389Z

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.

namenu 2024-06-12T01:49:49.846819Z

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.

2024-06-12T03:18:37.265269Z

we only saw marginal improvement, maybe 10-20s

2024-06-12T03:19:50.788299Z

that ticket would be relevant to our build as well