升级到js 3.3,发现又掉坑了(JSB下读取界面JSON很慢)

忙了一天,把界面从studio 1.6换到studio 2.1,终于搞好了后发现新版的UI读取,在JSB下面的性能非常差。

load同一个界面,web下面用0.1秒,JSB下需要0.8秒,还要是用iphone6 plus真机测试哦。。。真实大坑啊。

就是计算ccs.load(“xxx.json”)这个函数的运行时间而已

求解决

这么坑啊,话说现在是beta版吧

不能吧。楼主来个demo我们试试看呗。jsb下速度会更快的

版本回退后发现,即使是web下面,1.6的读入也比2.1的要快10倍,原1.6的界面,读入需要0.022秒,换成2.1后,读入要0.18秒啊

var checkTime = new Date();
var node = ccs.load(“res/ui/gameStart.json”).node;
cc.log(“3.3load:” + ((new Date()) - checkTime)/1000);

就跑这段代码,
web下面的log:
3.3load:0.075
JSB下面的log:
JS: 3.3load:1.142

好明显JSB慢很多,其他人也帮忙测试下你们的界面速度?

我测试了web版本的,结果如下:

console.time("parser time");
//var node = ccs.load("res/cocostudio1_5/Cocostudio1_5_1.ExportJson");
//parser time: 171.097ms 146 - 191 (ms)

//var node = ccs.uiReader.widgetFromJsonFile("res/cocostudio1_5/Cocostudio1_5_1.ExportJson");
//parser time: 171.501ms   145 - 190 (ms)
console.timeEnd("parser time");

记录的是第四次测试的数据,和每次数据的最大最小值,3.3的ccs.load和3.1的ccs.uiReader.widgetFromJsonFile的时间是差不多的。虽然最大和最小值都大了1ms,但是平均值其实是更低一点点的。

JSB上的逻辑是和WEB一样的,这边还没去测,有时间的话会去试一试,看看能不能还原出楼主的问题咯。

待会儿测试下1.6和2.1的工程的解析速度~~

exportjson速度是差不多,你用studio 2.1把界面转为新格式,然后导出为json再测测?

测试数据出来了

    //var node = ccs.load("res/1.6/MyTestUI_V1.6_1.json");
    //parser time: 35.917ms 34 - 40 (ms)

    //var node = ccs.load("res/2.1/Scene.json");
    //parser time: 42.369ms 42 - 57 (ms);

这是没有报错的情况下的数据,2.1解析出来的场景好像更容易提示警告之类的,如果控制台有打印东西出来的话,速度就掉到60-110了。。。
确实需要关注下这个。。。

下个版本应该会提升这方面的性能,并且让警告之类的东西少一些。:10::10:

但我测试环境没有出警告和任何提示哦,新版的studio很好用啊,很想尽快转过去,加油!

不要吓我 我用3.2的可能还没有用到楼主那么高深的东本吧 ,感觉还是很快的 在的有android 手机上跑也不慢

慢的问题,解决了吗?

我现在用的3.3 一个页面用了较多的json,然后加载时候非常卡

没研究了,自从出了问题后,所有界面都改为程序去做了,抛弃了studio:10:

今天问官方了,ccs.load用的是js读取,1.6 版本哪个读取方法用的C++,我们测试也是有10倍的差距,准备换成1.6的

没用过这些东西, 不过我给你提供一个我想象中的方案, 把json 用脚本 变成js 和其他所有的js打成一个包, 然后把cocostudio 加载数据的代码从json改成js

不过 这个 方案 估计有问题 解析数据的代码可能是c++写 的 不能解析js, 或许html5的可以这么搞

panda说可以JS绑定CSB的解析方法,弄了一上午,弄不明白

就是用c++解析json文件生成一个C++类实例,把这个实例导出到js中使用。工作量还是挺大的,不知道官方的解决方案还要等多长时间:3:

满满的都是坑。ide 卡顿 崩溃, 编辑器 控件不完善 listview scrollview bug一大堆。 导出的布局文件 加载 卡的要死。 发布到手机浏览器 帧率底的不敢说话。之前在白鹭和cocosjs上选择了 后者是因为相信它会更好。现在失望透了。

1赞

同问啊,我用cocostudio 2.2.9 导出的json,解析也是 慢的很啊,,,尼玛啊,,,,,早知道当初选择白鹭好了,,,巨坑