Come dice il titolo: Come testare e confrontare correttamente diverse implementazioni di mutex in c ++?
In sostanza, ho scritto la mia classe simile a std :: mutex per un progetto in esecuzione su un 2 core, armv7 con l'obiettivo di ridurre al minimo l'overhead nel caso non contestato. Ora sto pensando di usare detto mutex in più luoghi e anche in architetture diverse, ma prima di farlo vorrei accertarmene
- è effettivamente corretto
- non ci sono casi patologici in cui si comporta molto peggio di uno standard std :: mutex.
Ovviamente, ho scritto alcuni unit test di base e micro-benchmark e tutto sembra funzionare, ma nel codice multi-thread "sembra funzionare" non mi dà molto conforto.
- Quindi, ci sono tecniche di analisi statiche o dinamiche stabilite?
- Quali sono le insidie comuni quando si scrivono unit test per le classi mutex?
- Quali sono i casi limite tipici che dovresti cercare (dal punto di vista delle prestazioni)?
Sto solo usando tipi di libreria standard per l'implementazione, che include operazioni di caricamento e memorizzazione non sequenziali su atomica. Tuttavia, sono principalmente interessato alla consulenza agnostica di implementazione, poiché mi piacerebbe utilizzare lo stesso cablaggio di test anche per altre implementazioni.