如何在WPF中测量屏幕渲染时间

时间:2011-03-31 17:17:52

标签: wpf performance testing automated-tests measurement

我正在尝试衡量基于WPF的应用程序的性能。目前,我们的代码可以计算将内容添加到WPF渲染树所需的时间。此时,控制权返回给我们的程序。问题是WPF在屏幕上显示内容之前仍然存在滞后。对于复杂的渲染树,这可能只需几秒钟。

您能推荐一种方法来确定WPF何时完成渲染到屏幕?我希望这些测试完全自动化,而不是依赖坐在秒表旁的人。

[更新]

感谢到目前为止的建议。

我已经尝试等待Loaded和ContentRendered事件,但是在内容进入屏幕之前都会触发。

看起来其他人遇到了这个问题。我已经尝试了建议的步骤 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/693fbedb-efa6-413e-ab66-530c6961d3fb/但仍然无法强制我的代码等待渲染完成。

4 个答案:

答案 0 :(得分:11)

答案 1 :(得分:4)

你看过the WPF Performance suite了吗?您可能能够看到性能并查明有问题的代码。

答案 2 :(得分:1)

您应该使用Window的事件ContentRendered。

每次有完整的渲染序列时都会触发,你可以计时。

答案 3 :(得分:1)

您可以在控件的Loaded事件之后结束计时器,因为在渲染完成后会发生这种情况。