2 ms·
From recent discussions on the CHAMP stuff I was under the impression that once clojure equality semantics were matched the performance improvements were fairly
by tensor 9y ago
From recent discussions on the CHAMP stuff I was under the impression that once clojure equality semantics were matched the performance improvements were fairly minimal. This is why there isn't more urgency around updating the core data structures. Is that not how you see it?
- prospero 9y agoYou probably saw my response in that thread, where I said that the dramatic performance improvements in lookup speed reported by the CHAMP paper were mostly because they were comparing apples to oranges. However, Clojure's equality semantics only really help in some niche situations (where you want to be able to use ints, floats, and bignums interchangeably, mostly), so making the equality semantics configurable would be a huge win for all sorts of applications. Also, lookup is not the only performance win that CHAMP offers: https://github.com/lacuna/bifurcan/blob/master/doc/benchmarks.md https://github.com/lacuna/bifurcan/blob/master/doc/benchmark.... One thing the approach makes possible, which wasn't explored in the paper, is the ability to do union/difference/intersection operations structurally, rather than just iterating over each element in the set. None of these improvements are so overwhelming that they take priority over everything else. Clojure's data structures are still really well made. Given how data-focused the language is, however, I think these improvements are more compelling than everything that's been added to the language in the last five years other than `clojure.spec`.