C# windows xp 500mb ram上的慢速应用程序

C# windows xp 500mb ram上的慢速应用程序,c#,winforms,performance,windows-xp,C#,Winforms,Performance,Windows Xp,我制作了一个需要.NET4.0的c#windows窗体应用程序。我把它写在Windows8现代笔记本下,在那里它运行得很快。它没有那么重,它有两个线程,从串行设备读取一些值,保存数据或显示图表。 但当我在一台装有WindowsXP、奔腾43GHz、500mb di内存和20GB高清的旧电脑上运行它时,速度非常慢。电脑几乎没有安装任何东西,所以这不是软件问题。GUI似乎非常沉重。打开和关闭表单需要几秒钟的时间,如果您没有耐心,可以直接将其崩溃。有一个gif显示在一个图片框中。在笔记本电脑上它每秒钟

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

我以前见过这样的情况,应用程序在我的笔记本电脑上运行得非常快,但在用户的台式机上使用旧处理器时,它却在现场运行,事情真的变慢了

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

在另一个项目中,我们发现第一次机会异常会导致其他计算机上的速度变慢,这有助于在该硬件上运行VS并监视第一次更改异常。此外,如果框中有VS,则可以在缓慢的时刻暂停处理,然后查看stacktrace,查看其可能花费大部分处理时间的位置


希望这有所帮助,

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

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




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


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

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

我推荐你。它是MS提供的几兆字节大的探查器,免费且无需安装,所以您可以轻松地在客户的PC上运行它