You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently I'm working on a epoch-based memory reclamation library and learned a lot of from crossbeam-epoch. Thank you for your great work.
But I noticed that we will call global().collect() every PINNINGS_BETWEEN_COLLECT 1st pins.
In the senario which defer_destroy happens rarely, there is nothing to collect in most time. But try_advance issues a SeqCst ordering and a traverse of all threads, which is heavy. I wonder if we can add something like:
ifself.queue.empty(){return}
at the beginning of collect(), to reduce the overhead?
Recently I'm working on a epoch-based memory reclamation library and learned a lot of from crossbeam-epoch. Thank you for your great work.
But I noticed that we will call
global().collect()
everyPINNINGS_BETWEEN_COLLECT
1st pins.In the senario which
defer_destroy
happens rarely, there is nothing to collect in most time. Buttry_advance
issues aSeqCst
ordering and a traverse of all threads, which is heavy. I wonder if we can add something like:at the beginning of
collect()
, to reduce the overhead?crossbeam/crossbeam-epoch/src/internal.rs
Lines 201 to 219 in ce31c18
The text was updated successfully, but these errors were encountered: