大型plist解析后被拆散,导致加载时间增加几十倍的问题

由于场景中使用了大量小型的动画(1000+碎图),使用工具合成了6张图集和相应plist文件,但是开发环境在浏览器预览时时,这6个plist就被打散成了2000多个json,导致每次刷新都要等待巨长时间,2000+请求即使全部读的缓存也需要耗费8s多,这样严重拖慢了开发节奏。请问大神们有什么解决方案;


每个json文件都是一些非常碎小的信息,应该是引擎解析图集之后的一些信息,但是这些全部通过http请求加载出来就太耗时,性能也太低了吧,是否能有一种机制能让这些碎信息成为相对的整体供引擎直接读取

2赞

自顶,没人遇到这个问题吗

帮顶一下

解决了通知一下

关键信息没有表达出来,让别人怎么看

一句话概括就是:一个plist文件被分散成了多个json文件通过HTTP请求获取,当plist里包含的碎图较多时,加载时间几何增长,严重影响开发体验。

看来这个问题被很多人选择性忽略了

你那是预览才有的吧,你咋不说预览时候所有的js文件还都是单个原文件,

麻烦你看清问题所在,所有js是单个文件无可厚非,数量有限,方便调试,不影响加载时间;但是你加载几千个json试试?

1赞

发布之后会合并json的,你说的这个问题是开发环境才有的

开发环境每次刷新需要等待10s以上,这个不是问题吗

1赞

楼上已经有人给出回答了。 发布版会合并json. 为什么还要一直纠结?

呵呵,说话不要这么冲。 你如果觉得这是问题,那你完全可以不把这些资源用cocos管理,把资源放到随便一个web服务器上,远程加载,自己解析plist,动态生成spriteframe

发布并没有解决本地调试的问题

不好意思,这对我来说就是个问题,我使用creator就是看中资源管理的便捷,如果还要每次更改都要把资源上传到远程服务器,这样我觉得不是一个好的解决方案

我感觉问题所在的原因是 在没有打包的情况下 可能会对JSON文件进行频繁的修改 如果早在编辑器里面和在一起 你可以想象一下 实时处理一个巨大的JSON文件对性能还是挺有影响的 可能会造成编辑器卡顿 你这个8秒也不慢 现在我跟服务器通讯和读取本地JSON表起码10秒往上走 只能通过一些加载动画在后台偷偷的读取JSON表

你的图集有多大,什么样的,能不能优化结构等等
有可能是你的使用姿势不对,要么就发个重现demo,让别人帮你看看

就是没有合并请求的原因 其实这些图片应该是动态加载的 如果一次性全部加载完压力确实很大 就算合并了JSON 下载图片也得很久 初次加载体验极差

图片本身不大,数量比较多,1000+的小图片。使用TexturePacker生成了5个plist合集,开发环境下creator会把plist分散成一个个的json。这就导致即使调试一个单个小场景也要通过http发送总共2000+的请求。刚刚有同学提到js也是单个文件,这样方便调试可以理解,但是把plist分散成一堆小json,这样并看不出有什么方便的地方,

你这好几千个的图片,都是同时摆放到场景里显示的吗