微信小游戏测试结果
我真机上跑的结果是可以释放的啊。 我发个截图给你
这里应该是canvas.canvas
put进来的是canvas包含了ctx
可能这边引擎改了其他位置,如果能释放就太好了
cc.Label._canvasPool.put = function (canvas) {
canvas.width = canvas.height = 0;
canvas.canvas.width = canvas.canvas.height =0;
if (cc.Label._canvasPool.pool.length >= 5) {
canvas.canvas.removeEventListener("load");
canvas.canvas.removeEventListener("error");
return;
}
cc.Label._canvasPool.pool.push(canvas);
}
removeEventListener 应该是 删不掉的 需要传原来监听方法, Texture2d 脚本里添加的是匿名函数。
源码里有 两个地方 声明了 canvasPool 都要改。或者在项目里 main.js 里改按照我这个方式改。
你引擎版本是多少的,还有改动其他位置么

这两处地方都有改,测试没效果
我用的 helloworld demo 测试的。 引擎版本 2.4.4 讲道理应该没啥区别
我下个2.4.4看下,测试代码可以发下么,另外测试机用的那款
测试用例 有一些项目代码。不太好发你。 不过 HelloWrold.js onload 里加了我的那个 修复代码。
创建 :
let node = new cc.Node();
let lb=node.addComponent(cc.Label);
lb.string = ‘实例:’ + this.index + ‘Cocos Creator 是一款轻量、高效、免费开源的跨平台游戏引擎,同时也是实时3D内容创作平台,不仅支持 2D、3D 的游戏开发,同时在HMI、IoT、XR、虚拟人偶等前沿领域,均可提供一套完善的行业解决方案。Cocos Creator 具备了易于上手的内容生产工作流,以及功能强大的开发者工具套件,可用于实现游戏逻辑和高性能游戏效果,Cocos Creator 也将持续为开发者提供更便捷的创作工具,为合作平台带来可靠的技术解决方案和优质内容供应全球主流商业游戏引擎 Cocos 引擎于2016年推出了第二代编辑器 Cocos Creator,其以内容创作为核心,是一款实现了脚本化、组件化和数据驱动的游戏开发工具Cocos Creator 同步支持 2D、3D 游戏创作,以数据驱动和组件化为核心的游戏开发方式,并在此基础上无缝融合了 Cocos 引擎成熟的 JavaScript API 体系,一方面能够适应 Cocos 系染定制空间,引擎团队彻底重写底层渲染器,’
lb.horizontalAlign = cc.Label.HorizontalAlign.LEFT
node.parent = this.layerOut;
node.x=node.y=0;
lb.cacheMode = 0;
lb.useSystemFont =true;
lb.fontSize=20;
this.spineAssetList.push(node);
++ this.index;
销毁
this.spineAssetList.forEach(lb=>{
lb.destroy();
})
this.spineAssetList=[];
你可以用2.4.4 再测试一下。 排除引擎版本问题。
2.4.4源码+测试代码+测试录屏.zip (952.2 KB)
按照你刚才发的测试代码和测试截图,这边重新操作了一下,发现一些问题
1,根据贴友提供的截图,初始drawcall是7,添加后drawcall是19,猜测创建了12个文本,内存增加了从631增加到643,增加了10M多
2,用提供的测试代码,创建了12个文本,文本内容是提供的测试代码里的文本,内存从320飙升到420稳定后在378,增加了50M,随后释放掉,内存在331
3,经过第一次的创建和释放后,内存有10M释放不掉
4,再次创建和释放,内存在331-378之前固定,不会有新的变化
5,贴友12个文本,内存变化10M,这边测试发现内存变化有50M,其中10M无法释放掉
兄台

你是单独用的helloword 测试的么? 感觉不会增加这么多内存啊。
空工程,helloword的场景和脚本
你把demo发我 ,我这面测试跑跑呢。 感觉不对劲。你测试平台是什么。