Unity 性能优化及企业服务介绍
张黎明 大中华区技术总监 Unity
大纲:Project Review、UPR、Unity企业服务
-
Project Review
流程
现场支持
项目沟通
资源导入检查
Unity Profiler
Unity Memory Profiler
XCode Time Profiler
XCode Allocation
XCode GPU Capture Frame
常见问题类型
- 美术资源规范
- CPU时间消耗(脚本耗时)
- GPU时间消耗(Drawcall)
- Mono GC产生的性能问题
- 内存泄露
导入设置
- Model Import Setting:Read/Write Enabled
- FBX Import Setting:Animation Type Generic -> None
- Texture Import Setting:Generate Mipmaps(3D/2D)
- Audio Import Setting:ios -> mp3,android -> vorbis(Force to Mono)
- Animation Clip 60 fps -> 30fps
Unity Profiler
- 分析游戏卡顿,一帧 ,找到峰值,看到帧内所有函数消耗,排序
- gc allocate,gc卡顿
Unity Memory Profiler
- 内存分布
Instrument - Time Profiler
- 硬件、操作系统提供的接口,如GPU,引擎无法拿到
- CPU性能分析,选择时间范围内所有函数消耗排序
Instrument - Allocation
- 检测内存泄露,有哪些内存分配但没有释放
Capture GPU Frame
- 抓帧
Android
- Android Studio
- Adreno Profiler
- Mali Graphics Debugger
- RenderDoc
-
UPR - Unity性能测试分析解决方案
基于Unity Profiler的数据
游戏玩的过程中的Profiler数据 -> 服务器端 -> UPR云端分析 -> 可视化
-
开箱即用一站式工具套件
运行时
- Unity Profiler、Memory Profiler、Object Snapshot、Lua、GPU、Hardware、RenderDoc
静态资源
- Unity Asset Check、AssetBundle Redundancy Analysis、Static Code Analysis、Particle System Analysis
- 脱离Unity Editor环境,不像传统插件需要导入再检查
-
数据全面
- 收集运行时Profiling数据,内存快照,对象快照,硬件,GPU,Lua,屏幕截图等各维度数据
- 所有数据对其时间轴,统一显示在一张报表内
- 关联运行时数据与静态资源,直观反应资源相关问题
-
方便安全
- 无需越狱或ROOT
- 无需修改代码或集成SDK
- 无需上传工程文件和游戏包
- 测试人员可在几分钟内完成配置并开启测试
- 测试完成后,可以立即查看报告
-
报表强大
- 支持任意区间的精准数据统计
- 交互式数据可视化展示
- 和Unity ID系统整合,组织下项目权限管理完备,报告易于分享
- 灵活的数据对比(快照对比,区间对比等)
- 多维度数据联动,可以查看任一时间点产生的所有数据
-
专家建议
- 从Unity技术专家的Project Review中提炼优化规则
- 从各种类型的标杆游戏中提取推荐值
- 不断扩充的专家知识库和游戏性能库
-
稳定快速
- UPR Desktop可支持长达数小时甚至十几小时的超长时间性能测试
- 测试过程中数据实时上传,测试完成后可立即查看报告的大部分内容
-
自动化友好
- Desktop CLI搭配Open API,可轻松将UPR集成到自动化测试流程中
- 推荐:每日开发过程中都进行性能测试,而不是要上线才做,性能问题越积累越多。对比不同天的性能数据差别,方便分析性能来源
-
静态检测
Unity资源(Asset)检测
Asset Bundle冗余检测
-
静态代码检测
Project Auditor
-
优势
- 支持所有版本Unity
- 无需依赖Unity Editor
- 无需上传任何文件
- 无需安装,绿色执行,检测速度快
- 输出结果提供结构化数据
- 上传检测结果到UPR网站,以更加清晰、直观的方式对结果进行分析
-
全平台支持
- UPR Desktop支持全平台性能测试
-
专家服务
- Unity专家报告解读
- Unity专家一对一
-
企业版
- 私有部署、企业定制、自动化、二次开发、真人真机测试、远程报告解读
-
UPR相关资源
- https://upr.unity.cn
- QQ讨论群 Unity性能分析专区 1029672930
- Unity性能分析专区 官网小组 https://connect.unity.com/g/uprzhuan-qu
-
Unity企业支持
-
引擎定制
-
开放世界解决方案
- HLOD + Terrain HLOD系统 LOD生成,合并远景内的静态模型
- 体素化 Shadow Maps. Sparse Voxcl Octree保存阴影数据
- 开放世界场景生成. Houdini + Unity Houdini培训(地形,道路,植被,桥梁,岩石生成)
- 基于HLOD的流式加载 prefabs/textures/meshes
- Occlusion Culling流式加载 使用Editor烘焙OC数据,并提供流式加载
- Light Probe生成工具 自动摆放Light Probe
- Light Probe流式加载 流式加载LIght Probes
- 植被Indirect Draw 场景遍历,相机Culling使用GPU compute Shader加速 Instancing、Frustum culling使用GPU,Lod Calculation使用GPU
-
分布式方案
- 分布式资源导入方案
- 分布式Assetbundle资源打包方案
- 分布式il2cpp代码编译方案
卡通渲染解决方案
And More
-
-
技术支持
线上问题解答
驻场支持
Bug专属修复
游戏性能优化分析服务
CODM(call of duty mobile. 使命召唤手游)技术支持内容
驻场 4人驻场4个月 2人远程方案开发引擎定制内容
- Main Thread & Render Thread Overlay优化
- Camera Culling多线程优化
- JobSystem的并行运算使用率提升
- Animator性能优化
- Shader Profiler
技术美术
-
-
Q & A
- asset check自定义规则是否支持?目前upr暂不支持,企业版本可定制
- profiler报告在upr官网在线查看
- release版本不能通过upr抓帧,只能develop版本
- 自定义数据报表展示是否支持?目前只面向企业客户支持自定义
- 支持私有部署
- 资源加密服务,一个是代码加密,assetbundle加密,中国版已经提供
- upr线上免费试用
- houdini 程序化生成