小程序
小游戏
企业微信
微信支付
扫描小程序码分享
引擎为Cocos creator 1.9.1
发布到小游戏平台,开启调试模式、性能监控,发现内存总体一直增加
但使用Creator在浏览器环境下内存总体却不会增加
有做内存释放的处理,在小游戏环境内不生效
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
removeLayer ( layerName ): boolean {
if (! layerName || ! this . _curScene ) {
console . log ( "错误: layerName 或者 this._curScene 为空" );
return false ;
}
let layer = this . _layers [ layerName ]
if (! layer ) {
console . log ( "错误: 当前场景找不到layer" , layerName );
this . _curScene . removeChild ( layer , true );
console . log ( "removeLayer::::" , layerName )
this . _layers [ layerName ] = null ;
layer . destroy ();
cc . sys . garbageCollect ();
ResManager . getInstance (). removeAll ();
wx.triggerGC();
return true ;
编辑器是CocosCreator,动态加载的prefab和spriteFrame都有移除
...
let pfc=cc.instantiate(this.pop_free_coins);
this.destroyList[this.destroyList.length]=pfc;
pfc.parent=this.node;
onDestroy(){
for(let i=0;i>this.destroyList.length;i++){
this.destroyList[i].removeFromParent(true);
this.head_ico.removeFromParent(true);
但是在微信开发版环境下内存总体一直增加
@晨 能不能给外解决方案,这么多天了也不理!
@晨 再不解决,我要被项目经理喷了........
这个问题从提问到现在已过去近半个月了也没人跟进下.....
我也遇到了同样的问题 ,请问官方大大 有结果了吗 ?
removeLayer(layerName): boolean {
if (!layerName || !this._curScene) {
console.log("错误: layerName 或者 this._curScene 为空");
return false;
let layer = this._layers[layerName]
if (!layer) {
console.log("错误: 当前场景找不到layer", layerName);
this._curScene.removeChild(layer, true);
console.log("removeLayer::::",layerName)
this._layers[layerName] = null;
layer.destroy();
cc.sys.garbageCollect();
ResManager.getInstance().removeAll();
return true;
这个问题还没有解决方案吗?
随便写了几个页面,页面之中就简单列表,发现内存的确会随着操作时间而缓慢增加,一直没有下降回初始值,就算调用了重启API也是没降到初始值,求解惑.....
解决了吗? 有没有解决方式?
目前临时的解决方案是尽量减少 cc.Instantiate 的使用次数,感觉是每创建一次都会造成内存增加,并且很难降下来
官方现在是什么态度,其实我到现在都还不知道原因,你说的cc.instantiate我没怎么用到过,而且可以确定的是我在看到有明显内存增长,是没有执行过cc.instantiate
同样受这个问题困扰中,内存不断增加,不会下降,研究了5天了,没有解决,在这里发现还有这么多同行.......
少使用cc.instantiate,怎么用对象池啊
我也遇到你这个情况,蛋疼
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
removeLayer ( layerName ): boolean {
if (! layerName || ! this . _curScene ) {
console . log ( "错误: layerName 或者 this._curScene 为空" );
return false ;
}
let layer = this . _layers [ layerName ]
if (! layer ) {
console . log ( "错误: 当前场景找不到layer" , layerName );
return false ;
}
this . _curScene . removeChild ( layer , true );
console . log ( "removeLayer::::" , layerName )
this . _layers [ layerName ] = null ;
layer . destroy ();
cc . sys . garbageCollect ();
ResManager . getInstance (). removeAll ();
wx.triggerGC();
return true ;
}
编辑器是CocosCreator,动态加载的prefab和spriteFrame都有移除
...
let pfc=cc.instantiate(this.pop_free_coins);
this.destroyList[this.destroyList.length]=pfc;
pfc.parent=this.node;
...
onDestroy(){
for(let i=0;i>this.destroyList.length;i++){
this.destroyList[i].removeFromParent(true);
}
this.head_ico.removeFromParent(true);
}
但是在微信开发版环境下内存总体一直增加
@晨 能不能给外解决方案,这么多天了也不理!
@晨 再不解决,我要被项目经理喷了........
这个问题从提问到现在已过去近半个月了也没人跟进下.....
我也遇到了同样的问题 ,请问官方大大 有结果了吗 ?
removeLayer(layerName): boolean {
if (!layerName || !this._curScene) {
console.log("错误: layerName 或者 this._curScene 为空");
return false;
}
let layer = this._layers[layerName]
if (!layer) {
console.log("错误: 当前场景找不到layer", layerName);
return false;
}
this._curScene.removeChild(layer, true);
console.log("removeLayer::::",layerName)
this._layers[layerName] = null;
layer.destroy();
cc.sys.garbageCollect();
ResManager.getInstance().removeAll();
wx.triggerGC();
return true;
}
这个问题还没有解决方案吗?
随便写了几个页面,页面之中就简单列表,发现内存的确会随着操作时间而缓慢增加,一直没有下降回初始值,就算调用了重启API也是没降到初始值,求解惑.....
解决了吗? 有没有解决方式?
目前临时的解决方案是尽量减少 cc.Instantiate 的使用次数,感觉是每创建一次都会造成内存增加,并且很难降下来
官方现在是什么态度,其实我到现在都还不知道原因,你说的cc.instantiate我没怎么用到过,而且可以确定的是我在看到有明显内存增长,是没有执行过cc.instantiate
同样受这个问题困扰中,内存不断增加,不会下降,研究了5天了,没有解决,在这里发现还有这么多同行.......
目前临时的解决方案是尽量减少 cc.Instantiate 的使用次数,感觉是每创建一次都会造成内存增加,并且很难降下来
少使用cc.instantiate,怎么用对象池啊
我也遇到你这个情况,蛋疼