Comments (5)
I think trying to get local bags to work since using only the global GC in it's current (and in my opinion, any) incarnation seems pretty bad for performance
I agree with this, for exactly the reasons you mention -- it's why I added local bags originally.
My decision to revert to global bags was to try to get back to a conservative, known-good state for the library as quickly as possible. That, and the fact that the local bag code was a little smelly any, so I'd rather re-add a fresh version.
re: having four epochs, I agree that this seems the simplest approach to recovering local bags, and should address the bug I'm worried about.
I'll tidy up my test code and add it to the repo ASAP. Thanks!
from crossbeam.
I think trying to get local bags to work since using only the global GC in it's current (and in my opinion, any) incarnation seems pretty bad for performance
I definitely wrote that sentence too late at night!
My decision to revert to global bags was to try to get back to a conservative, known-good state for the library as quickly as possible. That, and the fact that the local bag code was a little smelly any, so I'd rather re-add a fresh version.
I totally agree, especially at this stage of the project. Tonight I'll test out the 4-bag version and see how it goes. I'll add any interesting test cases I find as well.
from crossbeam.
FWIW, the average push/pop time for MsQueue on my machine is ~120ns with local bags and ~160ns with only global bags.
from crossbeam.
Now that @msullivan's fix has landed, we should work on reincorporating local bags. As I said previously, the local bag code was due for a refactor anyway, so I'd be happy to start fresh. And I do think we can get away with the 3 epoch version, based on what you and @msullivan argued.
from crossbeam.
Thanks @msullivan for #51!!
from crossbeam.
Related Issues (20)
- crossbeam-skiplist bug HOT 3
- epoch `fetch_update` not working as expected HOT 2
- Crossbeam channel slower than Go channels with input data delay HOT 5
- Questions about "crossbeam_epoch" HOT 10
- crossbeam channel is very slow if restricted to a single core HOT 4
- Use cfg(target_has_atomic) instead of hard coding which targets support atomics HOT 7
- performance issues with memory ordering
- Panicked during `epoch::pin()` HOT 9
- Implement fmt::Display for CachePadded where T: Display HOT 1
- Thread-safe, shared-state concurrency with `WaitGroup` HOT 2
- crossbeam-utils fails to compile on esp32* targets starting Rust 1.74 HOT 3
- provide a scoped thread start taht returns result HOT 1
- Potential to modify the ordering for 'load' operations in the garbage module of branch 0.2.10 HOT 4
- Move CachePadded to separate sub-crate? HOT 5
- Fine-tune the ordering for received HOT 2
- Supporting `allocator_api` HOT 1
- `#[cfg(...)]` in the select macro
- crossbeam::skiplist: make iterator sendable to anther threads HOT 1
- select_macro.rs's fairness2 test is flaky with sanitizer
- Channel `select` panics "passed a receiver that wasn't selected" when using different clones of the same receiver HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crossbeam.