Application.Run是我的应用程序中最顶级的CPU消耗功能;我可以优化什么?

时间:2012-02-01 11:10:07

标签: wpf performance profiling

我的WPF应用程序具有一项功能,即在新图像准备就绪时更新UI时,它会在后台呈现大量图像。

对此过程进行分析表明,Application.Run是功能最多的功能,占43%,三个图形API共享的“第二昂贵”点,每个占6%。

我可能会做些什么会导致在Application.Run花费这么多时间?似乎这个方法的核心是运行我的应用程序的主调度程序,但这并没有帮助我弄清楚调度程序做了多少这样做。我能获得更细粒度的资料吗?

注意:我的意思是System.Windows.Application.Run

1 个答案:

答案 0 :(得分:4)

事实证明Visual Profiler(WPF Performance Suite的一部分)可以提供更详细的CPU使用情况:

CPU usage breakdown

这表明一半无法解释的CPU使用率下降到渲染线程(所以我可能不那么频繁地更新UI),剩下的大部分都用在我的Invoke回调中(在我的情况下这是不可避免的)。