我正在编写一个具有高度风格化的WPF界面的应用程序(所有默认的Windows UI chrome都消失了,所有控件都有自定义样式)。该应用程序在我正在开发的机器(带有NVidia 550M的Core i7)上运行得很好,只有1%的CPU。在朋友的全新上网本(AMD Fusion C-50,Radeon HD 6250)上,它的CPU使用率可能达到1-2%。但后来我带着我妻子的旧上网本测试一些较弱的东西(原装戴尔Mini 9,Atom N270,英特尔945 Express显卡)并运行相同的应用程序,它运行在近50%的CPU!但是,当应用程序最小化时,它会下降到4-5%,因此我认为它必须是导致问题的实际GUI。
但我并不熟悉WPF的渲染方式(我使用的是最新的.NET 4.0框架)。这真的是图形密集型吗? GUI虽然风格化,但并没有真正做太多...只是一个持续更新的进度条和每3分钟发生一次列表动画(这是一个媒体应用程序)。但除此之外,GUI是相当静态的。
由于我没有详细说明如何编写GUI,我显然没有想到如何解决它的具体细节,但我希望能够澄清最新的WPF如何依赖于一个相对现代的GPU(我承认,这个GPU几乎无法处理SD youtube视频)。 WPF 4是否有“最低要求”?应用程序本身非常简单,所以我不喜欢它因为我使用WPF而拥有真正的现代硬件要求。
答案 0 :(得分:1)
凭借DirectX,如果因任何原因失败,视频加速将首选回退到软件渲染。你老婆的机器XP吗?鉴于您正在使用自定义窗口chromes等,您可能设置了AllowTransparency = true?如果是这样,您的应用可能会因此而退回软件渲染。
使用WpfPerf确定它是否是软件渲染的。确保您拥有XP SP3,如果仍未解决,请尝试this。