参照カウント
マイクロソフトのComponent Object Model (COM) におけるCOMオブジェクトは参照カウント方式で管理される。
プログラミング言語Objective-Cのオブジェクトは参照カウント方式で管理される。
プログラミング言語Perlのガベージコレクタは参照カウント方式を用いている。
プログラミング言語Pythonのガベージコレクタは主に参照カウント方式を用いている。
ただし、補助的に(伝統的なマーク&スイープとは逆順の探索アルゴリズムによる)世代別GCを併用している。
プログラミング言語C++の規格C++11以降には、参照カウントでオブジェクトを管理するためのクラステンプレートとしてstd::shared_ptrが存在する。
Boost C++ライブラリのboost::shared_ptrおよびboost::shared_array。
参照カウントの増減処理をカスタマイズできるboost::intrusive_ptrもある。
POCO C++ Libraries の SharedPtr。
GLibに含まれるオブジェクトシステムGObjectは参照カウント方式で管理を行う。
ファイルシステムにおけるハードリンク
オブジェクト同士が互いに参照しあうなど、参照が循環している場合、参照カウントが0にならないためにオブジェクトが破棄されないという問題がある。(詳しくは後述)
単純な実装では大量のオブジェクトが一斉に解放されることがあり、CPUの空き時間を利用してガベージコレクションを行う方法と比べると、処理が遅くなる場合もある。 コンテナオブジェクトなど、解放されるオブジェクトが、多くのオブジェクトを参照している場合に起こりやすい。
対象オブジェクトが小さく、コピーが頻繁に行われるような場合は、参照カウントの空間的・時間的オーバーヘッドが問題となる場合がある。