| Feature | cds::gc::HP | cds::gc::HRC | cds::gc::PTB |
| Implementation quality | stable | unstable | stable |
| Performance rank (1 - slowest, 5 - fastest) | 5 | 1 | 4 |
| Max number of guarded (hazard) pointers per thread | limited (specifies in GC object ctor) | limited (specifies in GC object ctor) | unlimited (dynamically allocated when needed) |
| Max number of retired pointers1 | bounded | bounded | bounded |
| Array of retired pointers | preallocated for each thread, limited in size | preallocated for each thread, limited in size | global for the entire process, unlimited (dynamically allocated when needed) |
| Support direct pointer to item of lock-free container (useful for iterators) | not supported | potentially supported (not implemented) | not supported |
1Unbounded count of retired pointer means a possibility of memory exhaustion.