首页 > 其他分享 >【性能分析】【SLG】cpu-script卡顿案例

【性能分析】【SLG】cpu-script卡顿案例

时间:2023-02-07 18:01:26浏览次数:46  
标签:遍历 格子 script 云雾 100 SLG cpu 卡顿

用Unity自带的Profile排查,卡顿的原因主要在于循环遍历的次数太多。
案例:

遍历格子数太多导致卡顿。
SLG游戏一张大地图由横竖多块“屏”拼接而成,一“屏”又由一片格子组成,一屏包含的格子往往是成百上千。
游戏中有云雾,策划可以通过编辑器刷一片格子,以配置这片云覆盖了哪些格子。
在代码逻辑中,当判断某屏含有哪些云雾是,方法是:遍历9屏,遍历每一屏中的所有格子,看哪些格子含有云雾数据,从而判断该屏含有云雾。
而卡的原因有2个:
1.哪些屏含有云雾,没有预计算,而时间复杂度为9*100*100;
2.逻辑BUG,当某屏中的所有格子都没有云雾数据时,缓存并没有记录下来,所以下次又会实时寻找,做一次9*100*100。
解决方法:
1.预计算,以空间换时间;
2.修改BUG。

遍历资源太多导致卡顿。
SLG地图上包含大量的静态物体(地形/石头/树..)资源,动态加载时,需要遍历一屏上的所有资源然后加载对应预制体。
虽然预制体资源的在家是异步的,但是遍历操作并没有分帧,而遍历的数量已达到几万,这就是卡的原因。
解决方法:
分帧遍历资源,具体用协程在达到一定数量(如100)后yield return即可。

标签:遍历,格子,script,云雾,100,SLG,cpu,卡顿
From: https://www.cnblogs.com/alphaGo/p/17099350.html

相关文章

  • JavaScript 解决 query string 乱码问题?
    在JavaScript中获取URL中的querystring时,如果字符串中含有中文字符或特殊字符,可能会遇到乱码问题。为解决这一问题,可以使用decodeURIComponent()函数对整个query......
  • 微机原理与系统设计笔记3 | 8086cpu指令系统
    打算整理汇编语言与接口微机这方面的学习记录。本部分介绍8086的指令系统(一些与程序设计密切相关的如子程序调用指令放在下一部分)。参考资料西电《微机原理与系统......
  • javaScript BOM - 窗口事件,创建定时器与清除定时器
    1.窗口事件事件描述load等页面内容全部加载完毕,包含页面dom元素,图片,flash,css执行DOMContentLoadedDOM加载完毕,不包含图片,flash,css等就可以执行,加载速度比load......
  • javaScript DOM - innerText与innerHtml,操作元素的属性,节点的获取,创建,添加,删除,修改
    1.innerText与innerHTML//替换元素里面的内容成文字document.querySelector(".main").innerText="文字";//替换元素里面的内容成标签document.querySelector(".main")......
  • 1.2 CPU是寄存器的集合体
    1.程序是把寄存器当作对象来描述的。2.汇编语言采用助记符来编写程序。3.机器语言是指CPU可以直接解释和执行的语言。4.汇编语言和机器语言基本上是一一对应的。 通......
  • JavaScript - 目录
    javaScript-输入与输出语句,javaScript中的数据类型,字符类型与其它基本数据类型的互相转换,typeof检测数据的数据类型javaScript-数组的创建方式,数组的属性,数组的常用方......
  • 1.1 CPU的内部结构解析
    CPU(中央处理器)相当于计算机的大脑,CPU和内存都是由许多晶体管组成的电子部件,通常称为IC(集成电路)。CPU的内部是有寄存器,运算器,控制器,时钟组成的.CPU所负责的就是解释和运行......
  • Javascript trim()函数实现
    在JavaScript中我们需要用到trim的地方很多,但是JavaScript又没有独立的trim函数或者方法可以使用,所以我们需要自己写个trim函数来实现我们的目的。    方案一:以原型方......
  • elasticsearch中使用bucket script进行聚合
    目录1、背景2、需求3、准备数据3.1mapping3.2插入数据4、bucket_script聚合的语法5、聚合5.1根据月份分组排序5.2统计每个月卖了多少辆车5.3统计每个月卖了多少宝马车......
  • javaScript DOM - document 获取元素的方式,document 事件的三要素,事件的绑定方式,常用
    获取元素:1.document获取元素的方式getElementById通过Id名获取返回对象getElementsByTagName通过标签名获取返回数组getElementsByClassName通过类名获取......