shared_ptr optimization with local and global counters
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Non sono stati identificati file sorgente o test. Inizia esaminando le implementazioni esistenti di shared_ptr e local_shared_ptr, quindi analizza i requisiti di thread safety e di passaggio tra thread. Il lavoro sarà completato quando sarà stata presa una decisione progettuale e ci sarà un modo chiaro per validare il comportamento proposto con due contatori.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Would it be desirable to have a shared_ptr (or extend the existing shared_ptr) with a thread-local reference counter?
The basic idea is to have two reference counters: the normal reference counter is changed to count the number of threads using the shared_ptr, and an additional thread-local reference counter is used when a thread copies/deletes the shared_ptr (like local_shared_ptr.)
This ought to yield better performance in multi-threaded applications as it reduces the amount of cache congestion on the normal reference counter.
The disadvantages is the increased size due to the extra counter, and we need to consider how to pass shared_ptr between threads.
- Lingua principale
- C++
- Stelle
- 111
- Fork
- 116
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di boostorg/smart_ptr
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di boostorg/smart_ptr
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
NVIDIA/DeepStream#78 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
LaneDibello/Kotor-Patch-Manager#328 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100