cocos2d 3.14 js 跑酷游戏会出现间歇性卡顿,可能是GC问题

跑酷游戏,帧率没问题,保持在60fps左右,但仍会不定时(大约几十秒左右)有0.2~1s卡顿,Android和iOS表现基本一样。怀疑是GC造成。因为是跑酷游戏,卡顿一下还是很明显的,人物有可能会因为卡顿死亡,所以影响还是很大的。

已经采用各种方法优化,如:cc.pool重用对象,尽量不创建对象,能复用的就复用(包括动画之类的),仍然出现相同情况。求教各位如何进行优化。

下面是贴几段update中可能造成垃圾的代码:
1.
if (food.x <= -20) {
cc.pool.putInPool(food);
this.mFoodArray.splice(i, 1);
}

Array.splice(i, 1)这句话可能重新创建数组,造成开销?

  1.  var x = randomMinMax(30, 80);
     var y = randomMinMax(30, 80);
     var bubbleSmall = Bubble.reCreate(false); // 使用cc.pool复用对象
     bubbleSmall.attr({
         x : food.x + x,
         y : food.y + y,
         scale : 0.2,
         color : food.isHigh ? this.colorBubble1 : this.colorBubble2
     });
     this.addChild(bubbleSmall);
    
     var time = randomMinMax(1, 4);
     var delta = randomMinMax(60, 120);
    
     bubbleSmall.runAction(cc.moveBy(time/10, cc.p(0, delta))); // 随机点,产生moveBy, cc.p等对象
     bubbleSmall.fade(); 
    

会有moveBy等动画对象以及cc.p生成,因为不是固定点,是随机点,无法只创建一个对象并持有,请问如何进行优化?
这个问题已经研究很久了,至今仍然未解决,游戏还是出现间歇性卡顿。希望能给予指导

非常感谢!

顶!希望有优化经验的兄弟姐妹们能帮忙解决!谢谢大家!

你这个 最后解决了没啊

可以分享一下的你的源码吗? 因为我最近在写这个游戏 但是由于是新手 所以有很多地方不知道怎么写。谢谢啦!