Unreal 入门-性能分析
来源:互联网 发布:六爻排盘软件哪个好 编辑:程序博客网 时间:2024/06/14 14:09
命令:stat unit
游戏的实际单帧时间由这三者之一限制:Game(CPU 游戏线程),Draw(CPU 渲染线程)或者 GPU(GPU)。 图中我们可以看到 GPU是限制主因(三者最大的一个)。为了取得更少的 单帧 时间,在这个情形下必须先优化 GPU 的负载。
视图模式
视图模式就是一系列的 Show Flag 的预设组合。编辑器界面中,和 Show Flag 单独分开,也可以直接使用 ViewMode 的命令行来切换。 对于性能比较有用的是:Wireframe,LightComplexity,ShaderComplexity 和 Lit。(分别是线框模式,光照复杂度模式,Shader 复杂度模式 和 正常的光照模式)
几个不同的视图模式(按阅读顺序):光照模式,光照复杂度(越暗越好),线框模式,Shader 复杂度(绿色代表性能优良)
命令 StartFPSChart 和 StopFPSChart
然后用微软的 Excel 打开结果文件 .csv (保存在 [ProjectFolder]\Saved\Cooked\Android_ES31\SubwayPatrol\Saved\Profiling\FPSChartStats 处)。 在这里例子中,我们删掉了头四行,选择全部,并插入了一个线状图的散列表。
命令:stat Game
CPU 受限,需要找到引起此问题的游戏代码(如蓝图、光线投射、物理、AI、内存分配)
[0327.87] LogEngine:Warning:HITCH @ 00m:01s:643ms,1643,72,2.
stat InitViews显示可视性剔除所花费的时间和效率。关于渲染线程性能,可视部分数量是最重要的个体 stat,它由 STAT INITVIEWS 下的可视静态网格体元素支配,但可视动态原语也对其存在影响。stat LightRendering反馈灯光和阴影所需的渲染时间。stat Memory显示虚幻引擎中诸多子系统的内存使用情况。stat Particles显示粒子计算时间和 sprite 渲染时间。stat SceneRendering显示总体渲染统计。可从此处着手寻找渲染过程中性能较慢的大体区域。stat SceneUpdate显示更新世界场景的信息,包括添加、更新和移除灯光,以及在场景中添加和移除原语所花费的时间。stat ShadowRendering显示阴影计算时间,与实际阴影渲染时间分开(已包含在 stat LightRendering 中)。stat Slow [-ms=0.3] [-maxdepth=5]此命令将显示游戏线程和渲染线程的统计。所有 stats 将作为一个 stats 大群组进行渲染。无法访问分析工具或日志文件、或需要测试游戏的基础性能时,此命令十分实用。
以下是运行游戏中的实例:
此命令可进行如下配置:
stat slow [-ms=1.0] [-maxdepth=4]
默认只显示大于 1.0 毫秒的 stat 项目,以及超过 4 个关卡未被套入的 stat 项目。
注意:降低毫秒或增加深度均可能对整体性能产生影响。
Stat slow 对低于 0.1 毫秒的内容进行过滤,以增强性能并避免混乱。以下是减少 -ms 和增加 -maxdepth 所获得的结果:
stat slow -ms=0.3 -maxdepth=5
Stat slow 会占用大量屏幕空间,再次使用 stat slow(或 stat Grouped)将移除所有可视 stats 群组。此外,如启用其他 stats 群组,stat slow 也将被禁用。
stat Streaming显示流资源的诸多统计,如流纹理使用的内存量、或场景中流纹理的数量。stat StreamingDetails流的细节统计,将总体纹理流分解为更细致的群组(光照图、静态纹理、动态纹理)。stat Unit整体帧长、游戏线程时长、渲染线程时长、GPU 时长。stat UnitGraph查看带统计单元数据的图表,使用 stat Raw 查看未过滤的数据。命令:ProfileGPU
附加说明:
几个对分析最有用的变量:
命令行选项
有些功能可以在命令行中进行关闭,比如 UE4.exe -NoSound
几个对分析比较有用的开关是:
-NoTextureStreaming
关闭贴图 steaming(对于隔离问题时很有帮助)。-NoVerifyGC否则需要预期在 Release 版本中每 30 秒会遇到的性能波动。-NoVSync能够更快的渲染但会导致画面撕裂,尤其是在高帧数下。-Streaming在使用 StartFPSChart/StopFPSChart 很有用,能够从一个非 windows 设备上来获取数据并用于进一步检测(假设我们是实时的 cook 数据)。编译选项
请不要在 Debug 版本下进行性能的分析和测量。为了方便起见,我们建议针对 Development 版本做性能分析。在 Shipping 下的性能实际上会因为开发特性进一步的移除而更快。 测试当然最好是在 Shipping 中完成,但需要一些代码功能被打开才行。(比如控制台,比如 stat unit 功能)。
- Unreal 入门-性能分析
- Unreal 入门-Unreal 基础知识。
- Unreal 入门-
- Unreal 入门-
- Unreal 入门-Unreal问题库
- Unreal 入门-AO贴图
- Unreal 入门-顶点变形
- Unreal 入门-EQS
- Unreal 代码流程分析
- Unreal 入门-UE4 Console Command
- Python 性能分析入门指南
- Python 性能分析入门指南
- Unreal 入门-Unreal Engine 4 AI Programming Essentials 书籍下载
- unreal
- C++程序员如何入门Unreal Engine 4
- Unreal Engine使用C++入门示例
- Unreal 入门-Collision和Physics,碰撞检测
- Unreal 入门-贴图-关于纹理坐标
- Unreal 入门-Unreal Engine 4 AI Programming Essentials 书籍下载
- 【MongoDB】在window系统下搭建MongoDB的分片集群(一)
- C++笔试题 String类的实现 三大复制控制函数
- 使用BigDecimal进行精确运算
- MFC多线程进行图片的显示
- Unreal 入门-性能分析
- Oracle数据库的查询之过滤和排序(二)
- HTTP要点概述:一,TCP/IP协议族
- 信息安全
- 8. String to Integer (atoi)
- Unreal 入门-3dmax 从建模到渲染
- Jetty开发指导:Maven和Jetty
- Unreal 入门-Slow down world but not player
- 接口测试工具之postman基础使用get