Garbage collector and memory management

Any knowledge of a general implementation of the first alternative, i.e. reference counting? E.g. reference counted resources, arrays, C-allocated objects etc.

See also Resource pooling - to avoid dynamic allocation