wpf - Application.Run 是我的应用程序中 CPU 消耗最高的函数;我可以优化什么?

标签 wpf performance profiling

我的 WPF 应用程序有一个功能,它可以在新图像准备好时更新 UI 的同时在后台呈现大量图像。

分析此过程表明 Application.Run是执行最多工作的函数,占 43%,“第二昂贵”的位置由三个图形 API 共享,每个占 6%。

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

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

最佳答案

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

CPU usage breakdown

这表明,一半无法解释的 CPU 使用率归结于渲染线程(所以也许我应该不那么频繁地更新 UI),其余的大部分都花在我的 Invoke 回调中(这在我的情况下是不可避免的)。

关于wpf - Application.Run 是我的应用程序中 CPU 消耗最高的函数;我可以优化什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9094785/

相关文章:

java - 执行时间和处理时间波动

wpf - MVVM:为 ViewModel 缓存数据

c# - 嵌入式资源 - resx - 性能 - C#

Java NIO 从一个套接字读取并写入另一个套接字的固有缺陷?

performance - 继承等 OOP 概念是否可以优化应用程序的性能?

javascript - 如何测量函数执行所花费的时间

Erlang:检查进程正在运行哪个调度程序?

c# - 等待深度嵌套在堆栈上的方法

WPF Dispatcher 不像 BGWorker 那样工作

WPF:根据项目的大小和数量使用不同的模板