请明确一下,模拟器方式的节点创建回收 有内存泄漏的现象吗

245的版本 creator 模拟器方式,动态建立新建节点 然后删除节点,反复运行,内存会越来越大,如果去掉这些操作 内存基本不变,所以感觉应该是节点的回收处理方面 有内存释放的问题,
那么 是模拟器本身就没有这个内存回收的机制呢 还是我的代码有问题呢? 因为没用原生包测试还 ,所以不知道实际原生平台会如何,如果模拟器就这样 原生平台不会有问题 那么可以先不管,所以想问问官方 是这样吗?

nodetest = cc.instantiate(pResourceManager.pPfbDisplayMineLock);
。。。。
nodetest.removeFromParent(true);
nodetest.destroy();

@jare 同问

之前没有遇到过同类问题,能给个 demo?

这个我描述一下现象 你看如果不是问题 我就不发包了
空场景 就一个prefab, 比如开始启动内存50M ,然后大量动态增加节点cc.instantiate。。。
内存上去了 然后释放所有节点 removeFromParent(true); destroy();
然后间隔cc.sys.garbageCollect(); 会看到内存下降 一直降到100M左右 就不变了
反复操作 内存也是100M,当然 我这个只是一个prefab的 ,如果多了话没试,因为实际应用中会有很多种prefab ,那么内存是不是稳定后会变的更大些,但也是稳定状态?
那么多出的这些内存 正常吗?

50mb 是否包含加载 prefab 资源的内存?

增长的内存可能来自几个方面

  1. 首次加载 Prefab 应该会上传贴图到 GPU,产生一份 GPU 内存,这块会是大头
  2. instantiate 过程中会动态生成一些函数,执行过程中 V8 jit 会编译出机器码,产生内存
  3. 引擎内一些缓存对象的增长,比如 buffer,内置的渲染用对象

如果再次 instantiate,再删除,再 GC,重复不会造成显著的内存增长就是正常的

prefab 是随着场景静态加载的,所以我认为 应该进入GPU了 ,我看到的测试结果是 你大量增加内存 然后释放后,稳定内存大概是你启动内存的两倍 所以我不清楚这个是否正常 我还是上传例子吧 很简单 你们看一下估计就知道了 NewProject.rar (2.2 MB)

这是正常的,跟节点数量无关,不属于内存泄露。
这多出来的内存是各种缓存,一部分是 V8 自身保留的,用于减少内存频繁分配。
内存泄露的标准是,重复进行同一个操作,内存只增不减。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。