6 #include <cds/gc/impl/hp_decl.h>
7 #include <cds/gc/impl/hp_impl.h>
8 #include <cds/details/lib.h>
11 @page cds_garbage_collectors_comparison GC comparison
12 @ingroup cds_garbage_collector
18 <th>%cds::gc::DHP</th>
21 <td>Implementation quality</td>
23 <td>mostly stable</td>
26 <td>Performance rank (1 - slowest, 5 - fastest)</td>
31 <td>Max number of guarded (hazard) pointers per thread</td>
32 <td>limited (specifies in GC object ctor)</td>
33 <td>unlimited (dynamically allocated when needed)</td>
36 <td>Max number of retired pointers<sup>1</sup></td>
41 <td>Array of retired pointers</td>
42 <td>preallocated for each thread, limited in size</td>
43 <td>global for the entire process, unlimited (dynamically allocated when needed)</td>
46 <td>Support direct pointer to item of lock-free container (useful for iterators)</td>
47 <td>not supported</td>
48 <td>not supported</td>
52 <sup>1</sup>Unbounded count of retired pointer means a possibility of memory exhaustion.
57 /// Different safe memory reclamation schemas (garbage collectors)
58 /** @ingroup cds_garbage_collector
60 This namespace specifies different safe memory reclamation (SMR) algorithms.
61 See \ref cds_garbage_collector "Garbage collectors"
69 #endif // #ifndef __CDS_GC_HP_H