"Any State"のリンクがあるオブジェクトは消滅しても使用メモリが解放されません

弾幕シューティングのような大量の敵を破壊するゲームを作っています。
テスト中、メモリの使用量が徐々に増加している事に気づきました。

image

原因を調査した所、敵のVSの"Any State"からリンクがある場合、
消滅してもメモリが解放されないようでした。

Godotのモニターでオブジェクト数を監視した所、
"Ant State"のリンク有りで増加、リンク無しで変化無しを確認しました。
リンク条件は"変数の変化"や"攻撃判定に接触"等なんでもよく、
動作中に遷移するかしないかも関係ないようです。
また、別のゲームシーンに遷移しても解放されないようです。
なお、バージョン1.2.6で再現しますが、気づいたのは前バージョンなので
1.2.6の"Any State"の追加機能は関係ないと思います。

テストで使用したプロジェクトを添付いたします。

memorytest.zip (24.3 KB)

これは確かに興味深いです。Any State ノード自体を完全に削除してみましたが、わずかな増加は依然としてありました。Restore 条件の場合、GameObject の参照リストが常に増加していることが原因ではないかと考えています。最終的にはわかりませんが、原因をより詳しく調査できるよう、開発者にこの件を報告しました。

ご指摘いただき、最小限のプロジェクトも提供いただき、ありがとうございます。

「いいね!」 1

ご報告ありがとうございます。

"Any State"のリンク無しでもメモリが増加するのを確認しました。
オブジェクトやリソースは増加していないので、
確かにリストのようなデータが解放されていないかもしれません。