项目中反复创建移除过组件,发现内存一直在增长不知道是什么情况
下面是创建和移除节点的代码
(PrefabCache.getPrefabByName)是获取已加载的组件
(onChange) 是点击按钮的回调事件
__removeAllChilden: function () {
var count = this._nodes.length;
for (var i = count - 1; i >= 0; i--) {
var item = this._nodes[i];
item.destroy();
this._nodes.pop();
}
cc.log('remove finish nodes length: ' + this._nodes.length);
},
__addChilden: function () {
for (var i = 0; i < 150; i++) {
var item = this.__createItem();
this.node.addChild(item);
this._nodes.push(item);
}
cc.log('add finish nodes length: ' + this._nodes.length);
},
__createItem: function () {
var prefab = PrefabCache.getPrefabByName('finderButton');
var item = cc.instantiate(prefab);
return item;
},
onChange: function () {
this.__removeAllChilden();
this.__addChilden();
}
发布到mac平台
测试截图
刚进入91mb
![]()
点击change按钮11次后变成119.4mb
![]()
测试工程:testProject.zip (556.1 KB)