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

Rom*_*kov 7 wpf performance profiling

我的WPF应用程序具有一种功能,即在新图像准备就绪时,它在后台渲染大量图像,同时更新UI.

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

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

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

Rom*_*kov 4

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

CPU使用率细分

这表明一半无法解释的 CPU 使用率取决于渲染线程(因此也许我应该减少更新 UI 的频率),而其余大部分则花费在我的 Invoke 回调中(这在我的情况下是不可避免的)。