【CocosCreator】贪吃蛇前进性能分析(二)

​首先上一张图在有15条蛇,同时每个的长度是50000个身体,在进行前进的时候遍历这么多申请GameLogic 占用时间多主要用到了array的push 和unshift。

------优化前-----------

-----优化后-------

从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。

以下一下代码是默认array  的测试数据和自定义链表的测试数据。

let array = []        let arrayLabel: string = 'array push性能测试(毫秒)';        console.time(arrayLabel);        //push性能测试         for (let i = 0; i < 50000; i++) {             array.push(i);         }         console.timeEnd(arrayLabel);         let linkList = new LinkList<number>();        arrayLabel = 'linkList push性能测试(毫秒)';        console.time(arrayLabel);        //push性能测试         for (let i = 0; i < 50000; i++) {             linkList.push(i);         }         console.timeEnd(arrayLabel);         arrayLabel = 'array unshift 性能测试(毫秒)';        array = [ ];         //unshift性能测试         console.time(arrayLabel);        for (let i = 0; i < 50000; i++) {             array.unshift(i);         }         console.timeEnd(arrayLabel);                arrayLabel = 'linkList unshift 性能测试(毫秒)';        let linkList2 = new LinkList<number>();        //unshift性能测试         console.time(arrayLabel);        for (let i = 0; i < 50000; i++) {             linkList.unshift(i);         }         console.timeEnd(arrayLabel);        arrayLabel = 'array push 一个 性能测试(毫秒)';        console.time(arrayLabel);        array.push(121212);        console.timeEnd(arrayLabel);        arrayLabel = 'linkList push 一个性能测试(毫秒)';        console.time(arrayLabel);        linkList.push(121212);        console.timeEnd(arrayLabel);        arrayLabel = 'array unshift 一个 性能测试(毫秒)';        console.time(arrayLabel);        array.unshift(121212);        console.timeEnd(arrayLabel);        arrayLabel = 'linkList unshift 一个性能测试(毫秒)';        console.time(arrayLabel);        linkList.unshift(121212);        console.timeEnd(arrayLabel);

原文链接 ​​​​​​​

Cocos Creator开发之贪吃蛇前进逻辑 - MOMO教程在开发贪吃蛇过程中,用数组来计算蛇经过的点,每个蛇头和蛇身用两点来存储,正常情况前进 是每次都走一个点的距离。当进行加速时每次都两个点。这样就能进行加速前进了。之前写过贪吃蛇前进性能分析,在此在叙述下,首先上一张图在有15条蛇,同时每个的长度是50000个身体,在进行前进的时候遍历这么多申请GameLogic 占用时间多主要用到了array的push 和unshift。https://www.momojc.cn/post_910.html

关注公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值