MRI Ruby 2.0 では、 はどの程度徹底していGC.start
ますか?
オブジェクトへの参照がなくなったすべてのオブジェクトをガベージ コレクションしようとしますか? それとも、必要と思われる場合は GC オブジェクトのみですか?
私が持っている特定のクラスのオブジェクトの数を追跡しようとしていますが、いくつかのオブジェクトがそれらへの参照をもう持っていないと思っていても、増加し続けているようです。を使用GC.start
しても、これは修正されません。私は C 拡張機能を使用していないので、複雑になることはありません。
編集:私が抱えていた問題は、1.9.2-p180 の Ruby Symbol#to_proc リーク参照と同じでしたか? -オブジェクトはガベージコレクションされるべきだと思ったときにまだ存在していました。その場合のように、問題は暗黙的なSymbol
->の使用に関係していましProc
た。GC.start
ただし、がすべてのオブジェクトをガベージ コレクションする必要があるのか、それとも MRI がガベージ コレクションに必要だと判断したものを単に収集するのかを知っておくとよいでしょう。