2007-12-19 GC 内部実装について Xtalは参照カウンタとマークアンドスイープGCの併用となっており、GCを実行しなければメモリ使用量が閾値を超えない限りは、オブジェクトは一切回収されません。 そのため、毎ループxtal::gc関数を呼び出すことをお勧めします。gc関数はほとんど実行時間がかからないようになっているため、毎ループ呼んでも問題はありません。 gc関数では循環参照オブジェクトの解放がされないため、シーンの節目、節目にxtal::full_gc関数を呼び出すのもお勧めします。 毎ループgcを呼んでいればfull_gcもそれほど時間がかかるものではありません。 マークアンドスイープgc併用の理由 参照カウンタオンリーでは、 循環参照オブジェクトが解放されない 深く深くネストしたオブジェクトの解放でスタックオーバーフローの危険性がある、 等のためです。また マークアンドスイープgc併用の方が総合的には実行速度が良い という理由もあります。