现在的位置: 首页 > 综合 > 正文

PerfHud使用小结

2019年03月17日 ⁄ 综合 ⁄ 共 1137字 ⁄ 字号 评论关闭

对应四种模式:
F5    --    Performance Dashboad
F6    --     Debug Console
F7    --     Frame Debugger
F8    --    Frame Profiler

Activation Hotkey:自己设置来激活PerfHud响应。

全局选项:
Ctrl+T    :    将所有texture切换到2*2 dummy texture
ctrl+D    :    看一帧的深度复杂度(see a view of the depth comlexity of your frame buffer)

Performance DashBoard
+,-    :    加快或减速程序(6* ~ 1/8)

Frame Debugger
左右,上下箭头来前进后退一帧
home     跳到第一帧
end    跳到最后一帧
pageUp,PageDown多跳几帧

左方有4种视图:
    Textures:查看/修改当前draw call使用的贴图。
        可以+,-缩放贴图大小。
        鼠标悬停,会显示当前点的uv,和rgba。
        此时,右方的视图是RenderTarget,可以采取同样的操作。
        可以任意更换贴图,使用右键调出支持的调图形式。更换以后,可以F5切换回performance Dashboard观察结果。
    Call List:查看d3d 设备的调用状态,其中D3d API Calls(Current)可以查看当前draw call下的所有调用。
    Dependencies:
    Perf Events:这个是自己插入的调试信息。

高级选项:
   

Frame Profiler
该模式对每个draw call给出了极其详细的性能信息,包括gpu使用,cpu使用等。一键即可分析程序的瓶颈所在。

高效的使用PerfHud
1. 总是检查你的程序是CPU bound还是GPU bound.
如果你的程序是cpu-bound,则gpu优化并不能使其加快。你可以简单的通过Performance Dashboard来快速的得出结论。
第一种方式是检查视图的Frame Time和Driver Time线条。如果你的程序是Cpu-bound,你将看到黄线(“Frame Time”)与红线(“Driver

Time”)有很大的间隔。
另一张方法是按“N”来忽视draw calls,如果帧率没有明显上升,那么显然该程序是cpu-bound。(很遗憾,快捷键似乎未起作用,没能验证)
这种情况系,应该使用cpu 性能分析器,比如intel的VTune或者Amd的CodeAnalyst。
2. 使用Frame Debugger来解决渲染错误(Rendering Errors)
3. 使用Frame Profiler来解决性能问题。

抱歉!评论已关闭.