gpt4 book ai didi

WPF:提高在较旧的PC上运行的性能

转载 作者:行者123 更新时间:2023-12-03 15:38:25 25 4
gpt4 key购买 nike

因此,我正在构建一个WPF应用程序,并在今天进行了测试部署,发现它的性能非常差。我很惊讶,因为我们实际上在视觉效果或动画方面做得并不多。

我在两台机器上进行了部署:运行该应用程序所需的最快和最慢的计算机(最慢的PC拥有Intel Celeron 1.80GHz,带有2GB RAM)。该应用程序在速度较快的计算机上运行得很好,但在速度较慢的计算机上运行不稳定。当我说“不稳”时,我的意思是即使将光标移过具有焦点的应用程序的任何打开的窗口,光标也会跳转。

我打开了“任务管理器性能”窗口,可以看到只要应用程序获得焦点并且光标移到它上面,CPU使用率就会跳跃。如果我将重点放在另一个(例如Excel)上,则CPU使用率会在一秒钟后回落。在两台机器上都发生了这种情况,但是仅在速度较慢的机器上才出现断断续续的情况。我花很少的时间修改部署机器,所以没有做很多详细的测试。

该应用程序可以在我的开发机器上正常运行,但是我也看到CPU在那里飙升了10%,只是在窗口上运行了光标。

我从MS下载了WPF性能工具,并且一直在(在我的开发机上)对其进行修改。文档说出了有关Perforator工具中“帧速率”指标的信息:

For applications without animation, this value should be near 0.



该应用程序没有执行任何繁重的动画处理,但是当光标位于任何窗口上方时,帧速率保持在50附近。我测试过的屏幕在“突出显示”网格中具有列标题,并且在滚动时会更改颜色和外观的按钮。即使在窗口的空白区域上移动鼠标,也会导致相同的帧速率和CPU使用率(似乎与这些次要动画无关)。

(此外,除了将两个默认工具Perforator和Visual Profiler安装到WPF性能工具中之外,我无法弄清楚该如何获得其他东西。

我也有Redgate的性能分析工具,但是我不确定这是否可以改善渲染性能。

因此,我意识到在没有细节或示例代码(我无法发布)的情况下,这并不是一件容易的事。我的问题是:
  • 有哪些一般的外观
    为(或避免)代码中的改进
    表现?
  • 我可以使用WPF采取哪些步骤
    性能工具来缩小范围
    问题?
  • 上面列出的PC规范(具有2GB RAM的Intel Celeron 1.80GHz)是否太慢,甚至无法运行原始WPF应用程序?
  • 最佳答案

    您是否将任何BitmapEffect -s应用于UI元素?
    它们不是由GPU处理的,因此CPU会处理它们。如果使用不当(例如将OuterGlowBitmapEffect应用于大型复杂元素),则会对性能产生严重影响。

    另外,您可能仍想尝试使用性能分析器对应用程序进行性能分析。只是看看是否是您的代码导致了这种情况。

    关于WPF:提高在较旧的PC上运行的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698926/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com