エディター環境にてナビシステムの使用中メモリを確認するため、
メモリの統計「stat Navigation」のデバッグ表示の値を見ていたのですが、「nav tree memory」がレベルを変更しても、数mbずつリーク?しています。(何も配置していないレベルに変更してもメモリが増え続けています)
・これは正しいエンジンの挙動(仕様)なのか、レベル変更時にナビメッシュの解放?処理を入れないといけないのか分かりません。
この現象についてご存じの方がいらっしゃれば教えて頂きたいです。
よろしくお願いします。
エンジンのバージョン: 5.1
ナビメッシュの設定: Dynamic
既知の問題で以下の番号からトラッキングできます(公開に数日かかります)。
これはstatカウンターの表示だけの問題なので実動作に影響はありませんが、navtreeのメモリカウンターがdecrimentされないことによってリークしているように見えます。以下のコードでカウンターをdecrimentすることによって回避することが可能です。こちらはUE5.1でも現存していますが、将来的に対応予定です。
FNavigationOctree::~FNavigationOctree()
{
DEC_DWORD_STAT_BY( STAT_NavigationMemory, sizeof(*this) );
DEC_MEMORY_STAT_BY(STAT_Navigation_CollisionTreeMemory, NodesMemory);
{
DEC_MEMORY_STAT_BY(STAT_NavigationMemory, OctreeSizeBytes);
DEC_MEMORY_STAT_BY(STAT_Navigation_CollisionTreeMemory, OctreeSizeBytes);
}
ObjectToOctreeId.Empty();
}