clojure-dev

oyakushev 2025-03-28T12:35:01.165919Z

Hey, I'm sorry to be a nuisance, but https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786 really keeps biting me over and over. It came up today again – after roundtripping a large data structure (a list of DB rows) through either Nippy or EDN, every tuple occupies 240b more memory. And because so many things rely on transients these days, you pay the 240b tax every time you use: • mapvinto [] • and many others Is there a good reason to keep the fix on the backburner? The proposed fix is independent of the proposal to explore other solutions, one doesn't prevent the other.

👀 1
➕ 9
dominicm 2025-04-02T10:48:22.440879Z

ticket looked familiar, just realised that your patch might fix https://clojure.atlassian.net/browse/CLJ-2594 ?

👀 1
oyakushev 2025-04-02T10:54:21.237689Z

Yes indeed. It's also funny that we arrived at the exact same fix

2025-04-03T17:01:36.949969Z

I know that it is always more desirable to have such things in the official Clojure distribution, but out of curiosity, how seriously have you considered using a locally patched version with the enhancement?

oyakushev 2025-04-03T17:09:06.531349Z

I did consider it. If I were running a substantial public Clojure-but-faster fork, I would definitely include this fix there; but it doesn't feel worth it just for this alone. It would also be much easier if this could be monkey-patched on the Clojure side somehow; but since this is Java stuff with classes that are internal and non-public, it's just too much noise and clunk to ship the fully reimplemented transients together with a application/library.