见重现步骤
重现步骤
我在排查一个内存泄漏的问题,然后查到了可以使用obj list class=XXX命令来查看指定类的实例情况,但经过测试。有一些疑问?
步骤:
新建一个空的场景,然后放进一个CineCameraActor,使用命令obj list class=CineCameraComponent,命令显示对象数量是一个。然后我把这个Actor手动删除掉,再次使用命令查看,显示的对象数量还是一个。我又使用了obj GC命令,手动触发GC。再使用obj list class=CineCameraComponent命令,查看结果还是一个。
请问这是正常的吗?还是我对obj list理解有问题
您好,请问是编辑器下还是打包后呢?编辑器下的uobject都会加上一个flag,gc并不会释放,需要重新打开关卡才会进行一次深度的清理
不管是编辑器还是打包后,可以通过 obj ref 命令查看引用链。
是在编辑器下测试的。你说的方法,我测试下
编辑器,试了obj refs name=xxx,即使删掉了,也还是会有引用信息。
是的,编辑器下GC不会删除,是在内存中的,需要重新打开一次地图,这是正常现象
那在编辑器下,怎么进行内存泄漏的排查?
一般持续性的内存泄露使用unreal insight会比较容易发现
但如果是单个uobject,在编辑器下确实不太好排查,建议打包后查看