Charles Oliver Nutter
Charles Oliver Nutter
I may have found a possible reason: Pictured here is the bucket array for a single 500_000 element Hash. The array is only 131_101 elements long, meaning the load factor...
Marking for 10.0.3.0 as this will likely be a very localized fix with large performance improvement.
Current Hash implementation is based on an older chained bucket implementation from CRuby (which has more overhead and needs an [upgrade](#5967)), and it appears the default load factor for such...
Switching to murmur hash has little effect on the benchmark.
A few more notes here. * The current chained bucket implementation has some irreducible complexities even if we lower the load factor to 1 or less. CRuby now uses an...
I've spent some time playing with our mixing algorithm and exploring published alternatives. The main issue is the cost of the 64-bit multiplications; replacing those with simpler operations gets the...
@tbsvttr Not before the new year most likely. But that means we have time to get some additional patches in.
The abstract work is proceeding; I have been force-pushing as I find broken ends of my refactoring. I have tried to preserve as much of the public API of `RubyArray`...
I believe I have the abstractification green now with a minimal diff (outside of RubyArray.java). The remaining diffs are largely internal cases where we work directly with the "native" implementation...
@CufeHaco Here's a small handwritten prototype of basically that exact idea. The org.jruby.Ruby instance would hold the master reference to the bit field, but each context would carry it along...