小游戏在后台空闲时会使用UnityWebRequestAssetBundle.GetAssetBundle(url, Hash128.Compute(url))接口下载bundle,下载完成后会ab.Unload(true)掉,并关闭这条链接www.Dispose(),通过Unity Profile分析Unity的堆内存没有变化,但发现JS的堆内存不断在增加,通过抓取几次堆内存比较发现,FSNode这个对象的实例一直增加没有被回收过,而FSNode好像又是保存bundle文件内容的,发现它一直存在在UnityCache中,不知道如何处理这个问题。
使用UnityWebRequestAssetBundle.GetAssetBundle(url)不要带hash,如果带了的话,Unity会进行磁盘存储,webgl模式下磁盘就是用js arraybuffer模拟的,https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/UsingAssetBundle.md