New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new ConcurrentMap backend for TruffleRuby #907
Add new ConcurrentMap backend for TruffleRuby #907
Conversation
c1c7a7f
to
426a88b
Compare
else | ||
require 'concurrent/collection/map/atomic_reference_map_backend' | ||
AtomicReferenceMapBackend | ||
end else |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line is borked a bit.
Sorry didn't realise I left my only comment as 'pending'! |
426a88b
to
4b0c1b2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
I need to do a bit of exploring to remind myself how to do a release, but I'll get onto that. |
@chrisseaton do you need a new release? I'll have time next week. |
Yes please! I was going to reach out at some point. I was looking at trying myself but it looks fairly complicated to release. Can you please document how you do it as you go through the steps? Thanks very much. |
Ok, I'll see what I can do about improving the release doc. |
I've flatten the condition 382550c |
The build doc was updated in 5f06b9b |
released. |
Thanks! |
We've created a new backend for more efficient mapping on TruffleRuby using Java's ConcurrentHashMap library - oracle/truffleruby#2339
The new backend is faster than the previous implementation for TruffleRuby,
AtomicReferenceMapBackend
. And also faster than MRI and JRuby:Changes
TruffleRubyMapBackend
that inherits from the newTruffleRuby::ConcurrentMap
TruffleRubyMapBackend
backend forConcurrent::Map
on TruffleRuby if availableTesting
The new backend has been tested locally and passes the
map_spec
on this gem