3.8.1,spine动画内存泄露问题

非常简单的测试demo,创建一个比较复杂的spine动画,然后销毁,内存却下不去了。。微信图片_20240321143414 微信图片_20240321143607

1赞

升级382 看下 可以看下更新日志

1赞

spine的原始数据,还是释放不掉。。

原始数据指的是加载的asset,这样子的话,spine多的项目,只要玩的够久,就迟早一定会爆掉。

感觉传入wasm中的json数据没释放掉

383 我让测试同学在看下

JSON 数据好像不会被释放

bug修复了吗

请问
修了吗?

3.8.2还有这个问题,只是释放了Texture

@43714946
目前用383的版本未能复现你的问题。
由wasm申请的ArrayBuffer目前验证已经能被回收,目前还有哪个内存不能回收呢


asset里存放的内容占用内存的也没了

所以你贴个方案出来,告诉他怎么释放才是正确的姿势!

1赞

目前用383未能复现问题,麻烦提供具体泄漏的点以及调用栈

cocos creator的spine3.8.3版本相对于3.8.1版本有哪些具体改动,有具体的git 提交记录,便于项目团队单独合入吗?
另外cocos creator的spine wasm生成有相应的项目工程吗?看不到具体用到的spine版本,也看不到生成wasm的一些具体参数。项目团队想对spine的runtime做一些定制化



在该目录下 3d\engine\native\cocos\editor-support\spine-wasm cmd 上执行
emsdk_env.bat(windows), 需要下载emsdk。
然后执行emcmake cmake … (可以在release目录下执行),
看生成物是否有ninja有就执行ninja就可以

试了一下,
1.需要在子目录下执行(比如release目录),因为cmakelist.txt中对文件目录有要求
2.emcmake cmake … 这个命令需要改成emcmake cmake .\. .(单\没有显示出来,估计是当成转义字符了)

对编出来的结果文件有两个疑问:
1.我看生成的是spine.js和spine.wasm文件

,这个是对应到 这两个文件吗?我看js文件差异蛮多的
2.ams文件怎么生成呢 ?目前平台目标是小游戏,为了兼容,是不是应该也有ams的生成流程呢?

尝试用编译出来的spine.wasm和spine.js去替换spine.wasm和spine.wasm.js;iOS手机上稳定出现内存不足,android手机上未复现。是因为iOS构建流程上有什么缺失步骤吗?

构建出来的wasm在iOS上内存会很快上涨800m+,然后微信闪退;我们目前使用的是3.8.1官方代码,代码和构建流程是和你们内部的有出入吗?现在这个iOS无法跑,太难受了;增长太快也没法利用emcc提供的工具进行进一步查看原因;目前也不考虑升级引擎版本。能看一下这个问题?

asm 把cmakelist.txt里的 WASM值改为0;
emsdk 版本使用 3.1.41 打包 测试过高版本 微信会有性能问题。

建议用383,应该是在382上有修复了内存泄漏问题;另外383有修复382引入的部分问题