博客
关于我
16011301(统计指令数影响耗时)
阅读量:797 次
发布时间:2023-03-23

本文共 1211 字,大约阅读时间需要 4 分钟。

统计指令数对游戏性能的影响

在游戏开发中,了解不同指令对性能的影响是性能优化的关键。以下是我们对这一问题的探索过程和实践经验。

目标

通过分析和统计不同的指令对性能的影响,找出高耗时的代码区域,并为后续的性能优化提供依据。

思路

  • 相同模型,换材质后的性能变化

    通过比较相同模型但不同材质的渲染效果,观察对性能的影响。

  • 查看Shader的复杂度

    通过Shader Complexity工具,分析渲染管线中的复杂度,找出高消耗的渲染步骤。

  • 配置文件中的影响

    分析配置文件对渲染效果的影响,特别是材质和着色器的设置。

  • 计算颜色方式

    比较不同颜色计算方式对性能的影响,特别是阴影和纹理绘制的效率。

  • 耗时统计方法

    使用WxGameStatsVisualizer对渲染循环的时间进行详细统计,找出高帧率的瓶颈。

  • 每个组件的耗时

    逐一分析每个渲染组件的耗时,例如纹理绘制、阴影绘制等。

  • 添加百分比列

    在统计结果中添加百分比列,便于快速定位高耗时区域。

  • WxTextureStatsBrowser的功能

    探索该工具的具体用途,了解它如何帮助分析纹理资源的使用情况。

  • 计算公式

    通过公式GSecondsPerCycle * 1000.f * dwTimes,计算每个渲染循环的总耗时。

  • 添加分类统计

    通过对渲染指令进行分类统计,进一步精确定位性能问题。

  • 步骤

  • 添加一列Percent列

    在现有的渲染统计表中添加百分比列,方便快速比较各区域的耗时占比。

  • 调用WxPrimitiveStatsBrowser.UpdatePercentList方法

    通过该方法更新列表,计算每个渲染指令的百分比耗时。

  • 分析DrawCall数量与DrawTimes的关系

    注意到DrawCall数量和DrawTimes之间存在一定的关系,高DrawCall通常伴随较高的耗时。

  • 添加分类统计

    为每个渲染指令添加分类,例如材质类型、着色器类型等,便于更精确地分析问题。

  • 使用WxGameStatsVisualizer

    使用该工具获取详细的渲染统计数据,帮助分析高耗时区域。

  • 测试StaticMesh的时间消耗

    在TStaticMeshDrawList.DrawElement中添加耗时统计代码,确保StaticMesh的渲染不会成为性能瓶颈。

  • 将结果展示在列表中

    将分析结果展示在易于理解的列表中,便于技术团队快速定位问题。

  • 添加分类统计

    为每个渲染指令添加分类,例如材质类型、着色器类型等,便于更精确地分析问题。

  • 测试StaticMesh的时间消耗

    在TStaticMeshDrawList.DrawElement中添加耗时统计代码,确保StaticMesh的渲染不会成为性能瓶颈。

  • 将结果展示在列表中

    将分析结果展示在易于理解的列表中,便于技术团队快速定位问题。

  • 通过以上步骤,我们能够全面了解不同渲染指令对性能的影响,并为后续的性能优化工作提供详实的数据支持。

    转载地址:http://yaqfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现多组输入(附完整源码)
    查看>>
    Objective-C实现多项式函数在某个点的评估算法(附完整源码)
    查看>>
    Objective-C实现多项式哈希算法(附完整源码)
    查看>>
    Objective-C实现大位数乘法(附完整源码)
    查看>>
    Objective-C实现大根堆(附完整源码)
    查看>>
    Objective-C实现奇偶检验码(附完整源码)
    查看>>
    Objective-C实现奇偶转置排序算法(附完整源码)
    查看>>
    Objective-C实现奇异值分解SVD(附完整源码)
    查看>>
    Objective-C实现子集总和算法(附完整源码)
    查看>>
    Objective-C实现字符串autocomplete using trie(使用 trie 自动完成)算法(附完整源码)
    查看>>
    Objective-C实现字符串boyer moore search博耶摩尔搜索算法(附完整源码)
    查看>>
    Objective-C实现字符串IP地址转DWORD地址(附完整源码)
    查看>>
    Objective-C实现字符串jaro winkler算法(附完整源码)
    查看>>
    Objective-C实现字符串manacher马拉车算法(附完整源码)
    查看>>
    Objective-C实现字符串wildcard pattern matching通配符模式匹配算法(附完整源码)
    查看>>
    Objective-C实现字符串word patterns单词模式算法(附完整源码)
    查看>>
    Objective-C实现字符串Z 函数或 Z 算法(附完整源码)
    查看>>
    Objective-C实现字符串加解密(附完整源码)
    查看>>
    Objective-C实现字符串复制功能(附完整源码)
    查看>>
    Objective-C实现字符串是否回文Palindrome算法 (附完整源码)
    查看>>