Skip to content
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

Experiment with single-writer boxcar::Vec #690

Closed
wants to merge 2 commits into from

Conversation

ibraheemdev
Copy link
Contributor

@ibraheemdev ibraheemdev commented Feb 14, 2025

Testing to see if we can avoid the performance hit in #688 by using a single-writer optimized push method (which I added to boxcar in a branch). It looks like we can only do this for the ingredient_vec in Zalsa, not the page table or viewcaster vector.

Copy link

netlify bot commented Feb 14, 2025

Deploy Preview for salsa-rs canceled.

Name Link
🔨 Latest commit 9c3c15d
🔍 Latest deploy log https://app.netlify.com/sites/salsa-rs/deploys/67ae89ab589dc50008d5f7fe

Copy link

codspeed-hq bot commented Feb 14, 2025

CodSpeed Performance Report

Merging #690 will not alter performance

Comparing ibraheemdev:switch-to-boxcar (9c3c15d) with master (03197cb)

Summary

✅ 9 untouched benchmarks

@ibraheemdev
Copy link
Contributor Author

ibraheemdev commented Feb 14, 2025

Looks like this doesn't really help much. I would guess where append-only-vec is winning is avoiding per-entry initialization flags because it serializes insertion order using the spinlock, which gives it better cache-locality. That would require a completely new type in boxcar for the single-writer case, not just a new method. Either that, or the ingredients vector isn't actually where the regression is, and append-only-vec just looks better in the other cases because of the spin-lock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants