TestMemoryLeak.zip (3.3 MB)
机型:iphone 12pro
测试一:
我在demo 不断加载和释放一张2048 * 2048的图片,代码很简单
resources.load(2/test111/spriteFrame, SpriteFrame, (err, sf) => {
this.assets.push(sf);
sf.addRef();
for (let i = 0; i < 5; ++i) {
let node = new Node();
let sprite = node.addComponent(Sprite);
sprite.spriteFrame = sf;
this.container.addChild(node);
}
});
释放时候:
this.container.destroyAllChildren();
this.assets?.forEach((asset, index, arr) => {
asset.decRef();
});
this.assets = [];
每隔1s 来回加载渲染,并释放,4分多钟,用真机测,内存占用从260m增加到了350多M
测试二:
不断加载渲染 释放 两张2048 * 2048 的图片,
用真机测,结果,这是一分钟内存增长的情况:
2分钟不到内存狂飙到了1G多
如果只加载资源不渲染,就release,内存不存在严重的泄漏。
应该在渲染上存在很严重的泄漏。。。猜测可能跟自动和批有关(但我已通过代码把自动和批关闭)。
最后附上demo
希望官方能集中精力解决下这些内存泄漏问题,3.0某些功能缺失,或者一些简单bug,我们开发者都能接受,不会太影响项目上线。但老是爆出这类严重内存泄漏问题,会严重打击开发者信心的。即使能给个简单的临时解决方案也行。


