2.1 CPU脚本性能优化简介

1.帧率与性能瓶颈

2.CPU脚本性能优化


1.帧率与性能瓶颈

csharp 复制代码
1).什么是性能瓶颈

想象一下你在厨房做饭, 需要同时处理多个任务: 切菜, 炒菜, 调味; 如果切成速度很慢, 那么整个做饭过程就会被拖慢, 

切菜就是瓶颈; 游戏开发中的性能瓶颈也是一样的道理

当我们玩游戏时, 画面是一帧一帧的图像组成的; 帧率(FPS, Frames Per Second)就是每秒显示的画面数量; 一般来说, 30

FPS是基本流畅的标准, 60FPS会让游戏感觉非常流畅, 而低于20FPS就会明显感到卡顿; 要保持流畅的帧率, CPU必须在规定

的时间内秩序完毕所有指令; 每帧的时间预算是1000毫秒除以目标帧率; 比如目标是60FPS, 那么每帧的时间预算就是约16毫

秒, 如果CPU在某一帧的执行时间超过了这个预算, 就会导致这一帧的渲染延迟, 表现为画面卡顿
csharp 复制代码
2).性能瓶颈可以划分为两类: "CPU瓶颈和GPU瓶颈"

a.CPU瓶颈: 当CPU使用率过高, 主线程或渲染线程耗时超过预算时, 就出现了CPU瓶颈; 这通常是由于脚本逻辑过于复杂, 物

理计算过多或DrawCall数量过多导致的

b.GPU瓶颈: 当GPU处理图形渲染的时间超过预算时, 就出现了GPU瓶颈, 通常是由于模型面数过多, 纹理分辨率过高或着色器

过于复杂导致的

2.CPU脚本性能优化

csharp 复制代码
1).CPU脚本性能优化

Unity中, CPU脚本性能指的是游戏逻辑代码在CPU上的执行效率; 包含以下几个方面:

a.脚本执行时间: Update, FiexUpdate, LateUpdate等生命周期函数的执行时间

b.内存分配: 每帧创建和销毁对象的数量

c.垃圾回收: 垃圾回收器清理内存的频率和时间

d.资源访问: 访问组件, 查找对象等操作的效率

CPU脚本性能直接影响游戏的流畅度, 如果脚本执行时间过长, 会导致帧率下降, 游戏出现卡顿; 特别是在移动设备上, 由于

硬件性能有限, CPU脚本性能优化显得尤为重要
csharp 复制代码
2).为什么需要优化

想象一下你在高速公路上开车, 原本可以开120公里/小时, 但如果车上装了太多东西或轮胎气压不足, 车速就会下降; 游戏

也是一样, 如果代码写的不够高效, 即使在高性能设备上也可能不流畅

以下是几个需要进行CPU脚本性能优化的主要原因:

a.硬件限制: 移动设备的CPU性能通常比桌面设备低很多, 需要更高效的代码才能达到理想的帧率

b.多任务处理: 现代游戏需要同时处理游戏逻辑, 物理模拟, 音频, 网络等多个任务, 每个任务都需要CPU时间

c.内存限制: 频繁的内存分配和垃圾回收会导致性能下降和画面卡顿

d.电池寿命: CPU负载过高会导致设备发热和电池消耗加快, 特别是在移动设备上
相关推荐
RoboWizard4 小时前
金士顿Canvas系列存储卡有什么特别的技术优势?
人工智能·性能优化
爱喝水的鱼丶18 小时前
SAP-ABAP:BAPI 基础认知:SAP 标准业务对象接口的核心逻辑与调用入门
信息可视化·性能优化·sap·abap·bapi·开发交流·交流学习
AI服务老曹2 天前
边云协同视频分析性能优化指南:多站点部署下的资源瓶颈突破与调优实战
性能优化·音视频
A_cainiao_A2 天前
【ggml系列】【第五篇】ggml_compute_forward_mul_mat 矩阵乘法算子源码与性能优化深度解析
线性代数·性能优化·矩阵
ai产品老杨2 天前
边云协同视频分析性能优化指南:多站点部署下的参数配置与排查清单(边缘推理+云端管理)
性能优化·音视频
苏打水com2 天前
《llama.cpp性能优化实战:从显存、KV Cache到Token/s》
性能优化·llama
该用户可能存在2 天前
【Win11优化】StartAllBack实战:解决任务栏合并、右键折叠等痛点
windows·性能优化·win11·windows 11·startallback·任务栏·开始菜单
灯澜忆梦3 天前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
爱喝水的鱼丶3 天前
SAP-ABAP:性能优化效果验证与回归测试:优化前后性能对比、业务逻辑兼容性校验方案
性能优化·sap·abap·回归测试·开发交流·交流学习
starzhang3 天前
06 从 Trace 看 Android 启动流程
性能优化