WPF的高CPU使用率

时间:2012-04-11 12:59:32

标签: c# wpf cpu-usage

在我的WPF项目中,如果我打开一个窗口,cpu使用率大约是30%-50%,但是当我最小化这个窗口时,cpu使用率下降到1%。有人知道原因吗?感谢

2 个答案:

答案 0 :(得分:4)

你的屏幕上有很多绑定(双向)吗?这可能会导致高CPU。 还是很多动画?

最终,您可以使用WPF性能套件来监控导致此高CPU负载的原因:http://msdn.microsoft.com/en-us/library/aa969767.aspx

答案 1 :(得分:2)

Rody的好帖子,我只想添加一些内容,使用答案而不是评论,因为评论有最大限制..

我还建议使用Ants Profiler,它有2周的试用期 - 足以弄清楚发生了什么。此外,如果您发布一些代码,这里的人可以快速指出一些事情。

例如,如果你像Rudy所指出的那样,你可以获得大量的Bindings和Animations,以及过于复杂的控件和控件模板。在堆栈面板内,边框内对Stack面板的不必要组合进行质询...使用TextBlocks而不是Labels,或者是否需要TextBoxes,如果它们是只读的,请使用TextBlocks + Border。你的ItemControl的项目太复杂了吗?等...

此外,Ants Profiler可以向您显示“僵尸”对象。您是否正确处置,是回收对象,还是每次都创建新的复杂结构(例如,选择要显示的数据的新日期范围),然后重新绑定它们。如果你有数据网格单元格,每一个都需要一个昂贵的东西...一个弹出窗口和额外的边框..如果你围绕每个单元格创建一个边框以获得一些视觉效果,重新分解为只有一个,并重新定位它在网格上。 列表可以继续。

长话短说 - WPF很糟糕:所以你可能不得不削减一些东西,或者/并且更具创造性,以更少的开销来保持漂亮。

P.S。不要忘记发布一些代码......