乱new对象的真是够了

要不是在Surface Pro 2上肝了段时间的船还真不会注意到这点,KCV每次回到母港的时候CPU占用基本上是飞起来的。

然后凭着直觉找到了这些东西:

1.Grabacr07.KanColleWrapper/Itemyard.cs
97行void Update(kcsapi_slotitem[])
103行void Update(kcsapi_useitem[])

2.Grabacr07.KanColleWrapper/Models/Ship.cs
394行void Update(kcsapi_ship2)

3.Grabacr07.KanColleWrapper/Organization.cs
198行void Update(kcsapi_ship2[])

这4块地方每次回母港就会new一堆对象,然后在Gen1或者Gen2(长期活跃对象)堆里产生一堆垃圾。

最悲观估计:
260只舰娘,1140件装备
每次回母港会创建1140个SlotItem对象,260个Ship对象,几十个UseItem对象,1040个ShipSlot对象
总共大约新建2500个对象,同时产生大约2500个垃圾

能快有鬼了啊(摔)

当然,不能光靠感觉来对吧。
遂上诊断器,然后这是结果:
20150719220911
20150719221015这还是没加插件的情况啊摔,我母港舰娘就143只啊摔,装备才刚过600件没多少啊摔
顺便阿武隈改二好棒

遂作出这一更改:af5cf9571df7f3614ae3089045c3bba5bc91d772
然后再上诊断器,这是结果:
20150719221243

顿时神清气爽

发表评论