Ruby 初心者スレッド Part 26
■ このスレッドは過去ログ倉庫に格納されています
0650デフォルトの名無しさん
2009/03/24(火) 17:54:01なデータ領域やスタックなど確実に使用中と分かるデータとして置かれてい
るポインタを基点として、連鎖的にたどれるものに、到達可能の印を付けて
(マーク)、次にヒープ上のデータで印がないものを未使用とみなして掃除(ス
イープ)する。
基点にした領域にはただの数値データも置いてあったりするわけだが、そい
つは意味のあるアドレスを指したポインタ値に見えてしまう(実際にはポイン
タではないのに)こともある。本当のポインタと区別が付かないので、安全措
置(へたにデータを消してしまうのを回避)として、これらをポインタとみなす
GCのを「保守的GC」という。
本来ポインタでないものが保守的にポインタとみなされ、それからたどれて
しまったデータは、到達可能マークが付いてしまう。よってスイープ対象外
になる(=完全なGCにならない)。
■ このスレッドは過去ログ倉庫に格納されています