【问题标题】:Slow application on windows xp 500mb ramwindows xp 500mb ram上的应用程序缓慢
【发布时间】:2015-08-18 03:08:09
【问题描述】:

我制作了一个需要 .NET 4.0 的 c# windows 窗体应用程序。我在一个 Windows 8 现代笔记本下写了它,它运行得很快。它不是那么重,它有两个线程,可以从串行设备读取一些值并保存数据或显示图表。 但是当我在一台装有 windows xp、奔腾 4 3GHz、500mb di ram 和史前 20gb hd 的旧电脑上运行它时,速度非常慢。电脑几乎没有安装任何东西,所以这不是软件问题。图形用户界面似乎非常沉重。打开和关闭表单需要几秒钟的时间,如果您没有耐心,您可以简单地将其崩溃。图片框中显示了一个 gif。在笔记本上它每秒闪烁一次,在 PC 上它在 4-5 秒内闪烁。笔记本上每秒更新一次的计时器和电脑上每 3-4 秒更新一次的计时器也是如此。 显然它不会占用很多资源:使用的内存为 128 mb,cpu 约为 4-5%。你知道它为什么这么慢吗?

【问题讨论】:

    标签: c# winforms performance windows-xp


    【解决方案1】:

    您需要测量。可以是 GC、I/O、JIT 等等……

    我会推荐你​​PerfView。它是来自 MS 的几兆字节的大型分析器,它是免费的,无需安装,因此您可以轻松地在客户的 PC 上运行它。

    【讨论】:

      【解决方案2】:

      您的旧 Pentium 4 机器很可能没有专用的图形处理器,这意味着所有 UI 工作都由处理器完成。

      以任何现代标准衡量,奔腾 4 3 GHz 处理器都非常缓慢。在这个 PassMark CPU 基准测试中,它的得分为“358”,而高得分的“中低”CPU 得分在 1700 - 1800 之间。

      https://www.cpubenchmark.net/low_end_cpus.html
      https://www.cpubenchmark.net/midlow_range_cpus.html

      您没有说明您的 Windows 8 机器中的处理器是什么,但很有可能它有一个专用的图形处理器(即使它是集成在芯片上的)并且通常比您的 Pentium 4 强大得多机器。

      在这种情况下,与您的 Windows 8 机器相比,旧机器上的应用程序运行速度非常慢也就不足为奇了。

      【讨论】:

        【解决方案3】:

        我以前见过这样的事情,一个应用程序在我的笔记本电脑上运行得非常快,但随后它在使用旧处理器的用户桌面上运行,速度真的变慢了。

        它有助于运行以下性能分析器。您可以将其安装在桌面上,而无需安装任何开发人员工具。围绕缓慢的事件拍摄快照,然后在结果中您将看到哪些方法是缓慢的。也许有一个循环运行的文件访问,您可以通过将项目加载到内存中来减少访问时间。也许有一个数据库调用发生得比它应该更频繁。 https://www.jetbrains.com/profiler/?fromMenu

        在另一个项目中,我们发现第一次机会异常会导致其他计算机运行缓慢,它有助于在该硬件上运行 VS 并监控第一次更改异常。此外,如果您在盒子上有 VS,您可以在缓慢的时刻暂停处理,然后查看堆栈跟踪以查看其可能花费大部分处理时间的位置。

        希望这会有所帮助,

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-28
          • 2013-01-30
          • 1970-01-01
          • 1970-01-01
          • 2013-09-02
          • 2013-03-09
          相关资源
          最近更新 更多