我在我的应用程序中遇到了性能问题。本质上,我单击一个按钮,列表中填充了数据绑定数据(由于大量数据,这是虚拟化的),然后单击另一个按钮,该按钮将向关联的列表视图中添加一行。我之所以含糊不清,是因为我认为有必要说明 UI 中实际发生的事情有多么少。
这是我所知道的:
- 我在运行 Win 7 Pro 的强大开发计算机上,也没有在具有不错规格的 XP SP3 机器上看到这个问题。我只在运行 Win 7 企业版、4 GB RAM 和 Core i5 CPU(比 XP 台式机强大得多)的特定品牌笔记本电脑(联想 ThinkPad)上看到它。
- 由于上述发现,我不认为这是代码问题。
- 我使用 Microsoft 的 PerfView 工具进行了分析,并注意到我认为对 UIElement.Measure 的大量调用(我们的代码从未直接调用过),这是我在其他机器上分析时看不到的。
- 笔记本电脑的分辨率为 1360x780,所以我认为可能是小分辨率导致 GPU 不必要地渲染控件,因为我可能正在执行一些数据绑定(这可能解释了对 Measure() 的大量调用)。我将笔记本电脑的显示屏扩展到我的 24 英寸显示器,但没有看到任何改进。
现在我假设问题出在 GPU 上。我已经更新了驱动程序,没有任何改进。
- 即使我认为这不是代码问题,是否有相当于“SuspendLayout()”的WPF
- 有没有办法分析 GPU 性能以查看它是否在某些过程中受到锤击
- (远景)有没有人遇到过类似的性能问题,似乎是特定于计算机的,以及如何追踪它们的建议?
对不起,如果这是一个模糊的问题。我试图使其符合 SO 的使用要求。如果您想了解更多信息,请告诉我。
就像附录一样:该程序使用的是 WPF,C# 4.0,问题似乎与 Telerik 控件有关(尽管我不认为它们是可疑的,因为我们在其他地方使用它们没有问题)。