Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

shared_ptr optimization with local and global counters

Aperta
#53 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
devtools

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di boostorg/smart_ptr

Tutte le issue di boostorg/smart_ptr

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.