GC

Xtalは参照カウンタとマークアンドスイープGCの併用となっており、GCを実行しなければメモリ使用量が閾値を超えない限りは、オブジェクトは一切回収されません。
そのため、毎ループxtal::gc関数を呼び出すことをお勧めします。gc関数はほとんど実行時間がかからないようになっているため、毎ループ呼んでも問題はありません。
gc関数では循環参照オブジェクトの解放がされないため、シーンの節目、節目にxtal::full_gc関数を呼び出すのもお勧めします。
毎ループgcを呼んでいればfull_gcもそれほど時間がかかるものではありません。

マークアンドスイープgc併用の理由

参照カウンタオンリーでは、

  • 循環参照オブジェクトが解放されない
  • 深く深くネストしたオブジェクトの解放でスタックオーバーフローの危険性がある、

等のためです。

また

  • マークアンドスイープgc併用の方が総合的には実行速度が良い

という理由もあります。