cocos2d-x中的CCLabel存在比较大的性能问题已提交issue

我们这边优化好之后,打开界面的时间可以加快200到300MS,这个提升非常明显,希望官方好好看一下。
@zilong
问题如下:
https://github.com/cocos-creator/cocos2d-x-lite/issues/701

9赞

感谢感谢!

赞,之前为了优化这个我们项目字体都使用bmfont了,非常不方便

很多项目组,其实已经发现这个问题,但都是在内部解决掉了,我觉得这样真的很遗憾。

希望解决这些问题的人,能提交PR,或者把这个问题暴露出来,共同促进这个引擎的才是正道。

:smile:

Creator 的发展壮大需要像楼主这样的开发者,大赞 :+1:

这个必须赞一个.

大赞~~~~~

这个应该是一个很老的问题了。

之前项目用到的cocos stuio 1.6也存在这样的问题,我们项目组自己做了优化。
看了一下优化记录,之前一个UIText会创建三次纹理:

第一次,UIText在构造的时候使用过默认fontName和fontSize创建第一次字体纹理;
第二次,从CSB读取到fontName后,使用新的fontName和默认fontSize,创建第二张纹理,释放第一张;
第三次,在CSB读取到fontSize后,使用新的fontName和fontSize,创建第三张,释放第二张。

在设置的字体和大小都跟默认字体不一样时,每一个Label就会创建三张纹理,然后释放前两张,导致在label比较多的界面,会不断的创建释放纹理,打开非常慢。

我们的优化方式是:

1 去掉了构造函数中的纹理,省掉第一张纹理;
2 将setFontName和setFontSize合并成为一个函数,将第二三张纹理变为一张。

ccc也可以借鉴这种处理方式,直接把默认的纹理去掉,读取到ccc中设置的纹理之后,一次性创建一张字体纹理即可。

正准备提交一个issue,看来应该也是同样的问题,越往后创建的时候性能开销越大,最简单的解决办法就是缓存一个使用默认纹理的文本就行了。把注释处放开后,耗时如下:

:+1::+1:

好人一生平安

建议官方收了楼主这个好人,为你们做出了不少贡献啊,主要是对你们的引擎了解也比较深

对引擎不算了解很深,只是遇到问题就去引擎找一下原因。
相对引擎组,他们肯定更加专业,我觉得问题在于他们公司毕竟少实际的项目,所以很多问题很难及时得到反馈。

按照 如果加了描边组件的话。还是有这个贴图创建又废弃的问题。建议也优化下

请问下当时用的是cocos2dx哪个版本