节点未释放会导致游戏性能/帧率下降吗?

如题:有一个沙子游戏,有成千的节点。节点会持续新增到场景同时另一部分从场景移除。节点从场景移除的时候,仅仅做了removeFromParent(), 没有destroy释放。导致节点数量无限增长。

在这种情况下,实测内存会持续增长,同时性能/帧率也会持续下降。

我的问题:已从场景移除但未释放的,仅仅存在于内存的节点,为什么会导致性能/帧率会持续下降??

补充,用as profiler 看内存,从200M增长到500M的时候,就变卡了。12G内存的手机

我们现在能通过节点池解决这个问题。只是不明白性能下降的原因。

一个数组或对象越来越大,每次查询耗时肯定越来越多;存在内存中也至少会有引用地址存在js的数组或对象中,引擎不自动释放,是还打算让你后续接着用呢

就算你不用,引擎也会一直查询是否要被释放, 遍历查询100个快,还是10000个快,消耗小呢

你从哪里看出引擎会持续查询的?

去看看GC原理就知道了啊, GC都是过一段时间要标记一次哪些可以被释放哪些不可以, 内存越大GC越慢消耗越大, 这是基本知识了。而且内存占用多了, 就会频繁申请内存,每次申请前都会执行一次GC。

好的,感谢