-
Notifications
You must be signed in to change notification settings - Fork 164
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
refactor(perf): Remove extra page indirection in Table
#710
base: master
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for salsa-rs canceled.
|
CodSpeed Performance ReportMerging #710 will improve performances by 4.31%Comparing Summary
Benchmarks breakdown
|
Results look promising |
85ebb05
to
5ba9ff5
Compare
Alright all cleaned up, this will collide with #649 |
Table
Table
5ba9ff5
to
1a8456e
Compare
We could likely give |
1a8456e
to
da5d96b
Compare
bbebda9
to
54fc519
Compare
54fc519
to
2ae5f93
Compare
let index = self.allocated.load(Ordering::Acquire); | ||
if index == PAGE_LEN { | ||
let _guard = self.0.allocation_lock.lock(); | ||
let index = self.0.allocated.load(Ordering::Acquire); |
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.
Given we only ever modify allocated
in this function while the allocation_lock
is held, could we use Relaxed
ordering for the load here ? I believe so as the lock
call should already incur a happens-before relationship for the participating threads right?
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.
In fact it should be fine to make all loads (and the store in the critical section) relaxed due to the sole store happening within the critical section right? (not gonna include this in the PR either way)
cf213ee
to
f99f889
Compare
Table
Table
By manually erasing the concrete slot types and dealing with the vtable ourselves
f99f889
to
4b6dde4
Compare
I like the new lower limit, it makes my PRs pop out more now :^) |
Table
Table
By manually erasing the concrete slot types and dealing with the vtable ourselves