组件加载的时候产生大量GC

游戏运行时xml的序列化会带来大量的gc,是否考虑可以改成二进制序列化呢?
已邀请:

谷主

赞同来自:

包的加载是会有xml解析的gc,但其实这是很少的一部分。大部分还是消耗在组件自身对象的创建上,例如一个界面有100个元素,那每个元素都会占内存,而且是大头,这与用什么解析无关,除非整个UI引擎用C++来写。这和你new100个C#类一样,必然产生gc。那怎样才能避免,很简单,常用的东西不要反复装载卸载。
 
用二进制序列能有多大改进,未知,以后我会考虑改改试试。

vnty

赞同来自:

我试过在flash 做过测试了,而且mornui也建议了给他们,把我例子给他们,确实是XML导致的,XML无论在那种语言里面,都是new 出大量空间解析,然后瞬间又释放,你试试改2进制,处理马上好了,现在这个问题很严峻,我们使用了fairyui做ios时候,因为这个问题,很容易闪退,官方重视下,尽快解决这个问题。258015834我qq

谷主

赞同来自:

没有“无论那种语言”的说法。问主说的是Unity。Unity版本的XML解析是我自己写的,不需要所谓new出大量空间解析,相反效率并不比json之类差。市面上用fairygui的游戏大小都有上百个,MMO也不少,哪来很严峻的问题。
 
但如果你说的是flash,那我真的不打包票,目前as3的库的定位已经是用于桌面工具或者页游,用来做手游的凤毛麟角。其实as3版本那个zip库占用内存的问题更大些,如果你真是闪退,查这个更靠谱。

要回复问题请先登录注册