该问题属于使用问题,官网文档中对于文本的使用,有说明,
文档链接为:https://layaair.com/3.x/doc/2D/advanced/useText/readme.html
关键内容为:
LayaAir引擎在文本的底层渲染上,有两种方式。
分别是Text文本类的文本统一提交方式,和Graphics类的fillText文本单字符绘制提交方式。
如果采用了Text文本,那每一个Text文本对象中的文本字符会一起形成小图集提交到大图合集中,比如游戏中某个文本对象有300字,其中一个字符发生改变,也会对该文本对象的300字整段文本图集重新提到大图合集中。
又假如,在一个剧情游戏中,两人在对话。那其中一个文本对象,要不断的重新取值和赋值操作,使得该文本对象的显示内容频繁发生改变。此时,Text文本对象,就会不断的向大图合集进行文本图集的提交,占满大图集后,又需要创建一个新的图集继续提交,而不用的旧图集,如果没达到GC条件,也会一直存在,所以如果此次查看内存占用统计信息,就可以看到会一直在涨内存,直到GC条件达到之后,才会被销毁。并且GC在清空垃圾内存的时候,还有可能会导致瞬间的卡顿,甚至崩溃。
而采用Graphics类的fillText文本绘制,则是按单个字符向大图合集中进行提交,并且大图合集中已经存在的字符不会重复提交。所以对于图集的利用率比较好,即便是发生文本改变的时候,也不会向Text文本那样,创建很多垃圾图集。
结论:您在demo中,通过不断的修改label,就是文档中说的text的错误使用方式,这种用法是我们不建议的,建议您先改掉这种用法,再看看是不是还存在问题,如果仍然存在,请更新demo。我们再看看有没有别的问题。