creator1.7加载prefab很慢,是没用flatbuffers导致?

望大大们重视这问题,我们做的手机棋牌,creator比之前项目用的cocos2d-js + cocos studio要方便很多,开发速度也快。

但creator加载慢的问题却成了硬伤,不改底层引擎无解,现在给老板看的creator做的版本和cocos2d-js老版本(UI资源相同),2者放一起对比显示UI的速度,creator是相当惨,已经被老板批得体无完肤!

难道选creator真的选错了吗?这可是cocos最新的技术心血啊!怎可能连做棋牌都这么的失败,唉,想不明白。。。

cocos2d-js的资源,你们是不是在一开始就全部加载了,creator项目的资源是不是没有提前加载?

顶jare, 期待中

相比之前的项目,现在慢了几倍?

打牌界面加载显示,之前的0.5秒不到,creator需要3秒以上,同一个华为手机,1.1G四核,2G内存。打牌界面元素也并不多,prefab里初始牌数20多张,其它的牌都是代码动态生成的,但prefab有400K大小。

这400K的json加载完成,再解析成js对象,基本时间就耗在这里了

1赞

20 多张应该不会这么夸张的,我们测试过更复杂的都不至于要 3 秒。你是否有使用 release 模式进行构建?

1.7比1.6慢了体验上的感觉差了10倍左右,,我的感觉,,然后退回来了,太吓人了

我用1.4和1.5都打包过,感觉没有慢的那么夸张啊

他说的是1.7

用的是release构建,都是在同一手机做的测试,creator和cocos2d-js + cocos studio相比,真的是慢了太多,希望引擎组的大大们,能真正花时间来解决这个问题,都是cocos公司的产品,没有对比就没有伤害。。。

你能把你的测试工程发上来看看吗?按理说没你说的那么夸张,第一次加载慢 6 倍,是有可能,不过 prefab 后续实例化的时候,应该速度能接近。

我是直接在项目中打log,计算显示每个UI所需时间。

比如说创建房间的小型UI,有15个toggle(含30个小sprite)、21个label,其他10个小sprite,整个prefab文件大小有160K,首次加载显示需要 1500 毫秒,运行drawcall为28,之后destroy再加载显示需要 280 毫秒(没有loader.releaseRes的情况下),但同样的界面元素在cocos2d-js+cocos studio里,点击马上显示,没有延迟感。。。

1赞

嗯…… 目前 Creator 底层创建的节点是会有点多,确实会慢一些。第二次显示就会快很多了。我也会争取尽快优化这部分效率。

如果有10个图片资源要加载,调用10次loader.loadRes,底层是线性逐个加载还是多线程同时加载?

如果用loader.loadResArray加载10个资源,底层是线性逐个加载还是多线程同时加载?

是多个请求同时发起

不好意思。我又来挖贴了。。。

主要还是addChild慢了,动态生成的界面慢到无法接受。现在唯一能勉强解决的办法也只能提前在页面中摆好,active=false,用的时候再显示出来。

addChild确实太慢了

用flatbuffers存储应该会快很多倍,之前的cocosstudio就是用的这个,既然有技术基础,为什么不用呢?

2.4版本测试了下实例化相对load速度还可以,load一个prefab差不多要200ms左右,实例化大概30-50ms,如果预加载会好很多,但是内存就上去了,在不需要的时候还把资源加载了感觉不太好。