https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104361
Bug ID: 104361
Summary: Biased Reference Counting for the standard library
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: antoshkka at gmail dot com
Target Milestone: ---
There's a research named "Biased Reference Counting: Minimizing Atomic
Operations in Garbage Collection" that shows how to speed up reference counting
for some platforms for more than 20%
https://dl.acm.org/doi/pdf/10.1145/3243176.3243195 .
The research does not talk about speedup of C++ but it is based on an
observation that most objects are only accessed by a single thread, which
allows most RC operations to be performed non-atomically. That observation fits
std::shared_ptr usage patterns.
Such a change seems to be an ABI break for shared_ptr, however may be it could
be used for stop_token and other new reference counted types.