2012-12-17 27 views
3

我将评估处理大量数据(100000个条目及以上)的WPF组件的多个竞争框架。因此,我需要时间真实的表现。由于我们所有的软件都是严格按照MVVM /数据绑定驱动的,这就是我使用的测试环境。我需要的是找到一种方法来衡量我的视图模型集之间的时间和视图渲染的结束时间。在视觉上它需要几秒钟,但我想有准确的测量。WPF数据绑定处理的测量时间

我当然可以在设置属性时启动秒表,但是如何知道渲染已准备就绪?有这样的事件吗?

+0

使用探查器,这是最好的方法。我personnaly使用dotTrace的那种性能措施。 http://www.jetbrains.com/profiler/ – Sisyphe

+0

是的,我可以做到这一点。但是,对于不同的数据集,我有几十个不同的测试,乘以几个测试框架。很想自动化。 –

回答

7

也许它不会给你确切的措施,而是做一个简单的方法是使用分派

var sw = new StopWatch(); 
sw.Start(); 
//Set value and raise property changed 
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => 
{ 
    sw.Stop(); 

}), System.Windows.Threading.DispatcherPriority.Loaded); 

加载的优先级仅仅是渲染优先级以下,所以秒表会后停止视图已被渲染。

+0

工程就像一个魅力。为了精确度,我需要更多。 –