Skip to content

Latest commit

 

History

History
190 lines (100 loc) · 4.27 KB

File metadata and controls

190 lines (100 loc) · 4.27 KB

第1章:性能调优入门

  • 核心内容

    • 指标定义:帧率(游戏内60FPS/游戏外30FPS)、内存阈值(iOS设备实测崩溃阈值表)
    • 问题分类
      • •内存问题:泄漏检测(多次场景切换观测内存增长)
      • •处理负载:瞬时峰值(GC/大量计算)、稳态负载(CPU/GPU瓶颈)
    • 工作流程:测量(Profiler)→ 定位原因 → 优化 → 验证对比

第2章:基础

  • 硬件原理

    • SoC架构:CPU/GPU集成设计

    • CPU特性:流水线机制、缓存层级(L1/L2/L3)

    • GPU特性:并行计算架构、显存传输瓶颈

  • 渲染流程

    • 渲染管线:顶点着色器→片段着色器

    • 过度绘制:半透明物体叠加渲染

  • 数据表示

    • 纹理内存公式宽×高×通道数×位深/8

    • 网格结构:顶点坐标/UV/法线数据

  • Unity机制

    • IL2CPP编译:IL→C++→机器码

    • AssetBundle依赖:避免重复资源


第3章:性能分析工具

  • 工具矩阵

    工具类型 代表工具 核心功能
    Unity内置 Profiler CPU/内存/GPU模块化分析
    内存分析 Memory Profiler 快照对比(图3.4操作界面)
    GPU分析 RenderDoc 绘制指令捕获(图3.9界面)
    原生工具 Xcode Instruments iOS内存分配跟踪(图3.6.4)
  • 操作守则:优先真机测量,编辑器数据仅作参考


第4章:调优实践-资源

  • 纹理优化

    • •禁用Read/Write(节省内存副本)

    • •ASTC压缩策略:6×6平衡大小/速度

  • 网格优化

    • •顶点压缩:剔除冗余法线/切线数据

    • •启用Optimize Mesh Data选项

  • 动画优化

    • •关键帧精简:减少30%曲线数据

    • •蒙皮权重:骨骼数≤4


第5章:调优实践-资源包

  • AssetBundle策略

    • 粒度设计:按功能模块分包(如"角色_材质"独立包)

    • 压缩选择:LZ4(加载速度)> LZMA(包体大小)

    • 依赖管理:共享资源独立打包(图2.34依赖关系)


第6章:调优实践-物理

  • 碰撞检测优化

    • 层级矩阵:减少不必要的碰撞对(如UI层无视环境碰撞)

    • 射线检测

      // 避免GC分配
      RaycastHit[] results = new RaycastHit[10];
      Physics.RaycastNonAlloc(ray, results);
      
    • 刚体睡眠:启用Sleeping State减少计算


第7章:调优实践-图形

  • 分辨率策略

    • •动态缩放:根据设备性能降分辨率(720p→540p)
  • 批处理技术

    • 静态批处理:合并静态物体网格(省Draw Call)

    • GPU实例化:相同材质/网格物体批量渲染

    • SRP Batcher:变体相同材质合并SetPass Call

  • 遮挡剔除

    • •预计算场景遮挡数据(图7.5.3)

第8章:调优实践-用户界面

  • 画布分区

    • •动态元素(血条)与静态背景分离
  • 射线投射优化

    • •非交互元素禁用Raycast Target
  • 文本渲染

    • •TextMeshPro替代UGUI Text(节省50%顶点)

第9-10章:脚本优化

  • GC分配规避

    场景 优化方案 效果
    对象高频创建 对象池(ObjectPool) 零GC分配
    字符串拼接 StringBuilder复用 减少内存碎片
    LINQ查询 转for循环 避免延迟执行开销
  • Burst编译加速

    [BurstCompile]
    struct ParallelJob : IJobParallelFor { ... }
    

第11章:玩家设置

  • 后端选择:IL2CPP > Mono(性能提升20%)

  • 代码剥离:Managed Stripping Level = High


第12章:第三方库

  • DOTween:启用autoKill减少内存驻留

  • UniTask:CancelationToken管控异步任务