回答編集履歴

1

ネイティブ側ではなくC#側のメモリであることを明確にするため、用語を修正

2019/06/10 21:15

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -1,5 +1,5 @@
1
1
  ご提示のDeep Profile結果から想像しますと、もしかしてメニューの「Jobs」→「Leak Detection」がオンになっていませんでしょうか?
2
2
 
3
- ここがオンだと、NativeArray生成時に内部で[DisposeSentinel](https://docs.unity3d.com/ScriptReference/Unity.Collections.LowLevel.Unsafe.DisposeSentinel.html)とか[StackTrace](https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.stacktrace?view=netframework-4.8)が生成されるようです。これらはいずれも参照型ですので、ヒープ領域を少しずつ消費しているのかもしれません。
3
+ ここがオンだと、NativeArray生成時に内部で[DisposeSentinel](https://docs.unity3d.com/ScriptReference/Unity.Collections.LowLevel.Unsafe.DisposeSentinel.html)とか[StackTrace](https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.stacktrace?view=netframework-4.8)が生成されるようです。これらはいずれも参照型ですので、マネージドヒープ領域を少しずつ消費しているのかもしれません。
4
4
 
5
5
  「Leak Detection」はNativeArrayの解放忘れをチェックしてくれる機能だそうですが、試しにこれをオフにしてみると変化はあるでしょうか。