我的 WPF 应用程序有一个功能,它可以在新图像准备好时更新 UI 的同时在后台呈现大量图像。
分析此过程表明 Application.Run
是执行最多工作的函数,占 43%,“第二昂贵”的位置由三个图形 API 共享,每个占 6%。
我在做什么会导致在 Application.Run
上花费这么多时间?这个方法的核心似乎是为我的应用程序运行主调度程序,但这并不能帮助我弄清楚调度程序做了这么多的事情。我可以获得更细粒度的配置文件吗?
注意:我的意思是 System.Windows.Application.Run
.
最佳答案
事实证明,Visual Profiler(WPF Performance Suite 的一部分)可以提供更详细的 CPU 使用情况分割:
这表明,一半无法解释的 CPU 使用率归结于渲染线程(所以也许我应该不那么频繁地更新 UI),其余的大部分都花在我的 Invoke 回调中(这在我的情况下是不可避免的)。
关于wpf - Application.Run 是我的应用程序中 CPU 消耗最高的函数;我可以优化什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9094785/