为什么WinForms应用的64位版本有时会冻结很多秒钟

时间:2019-06-19 03:42:07

标签: .net garbage-collection 64-bit 32bit-64bit

自从我们将Windows Forms应用程序的构建版本更改为64位并推出以来,一些用户抱怨它感觉缓慢,有时会冻结长达10甚至15秒。

在同一主机上的相同虚拟机上同时运行64位和32位版本,两者都需要大约相同的启动时间,并且只要有足够的可用RAM,它们的响应速度也类似。但是64位版本的消耗大约是32位版本的1.5倍(以“专用字节”衡量)。

现在,当我减少虚拟机的可用RAM量时,启动64位版本所需的时间要长得多-这似乎是有道理的,因为内存消耗较高,因此必须执行更多的GC操作,用很少的内存来做。

我能提出的唯一理论是,那些冻结的客户的内存不足,无法使用我们的64位应用程序,从而导致交换和/或GCing。

那是什么意思

  1. 他们应关闭其他应用程序或获取更多内存
  2. 我们应该尝试减少应用程序的内存占用量

还是 32位和64位之间还有什么其他区别,可以使64位冻结?

32位垃圾收集器和64位垃圾收集器之间似乎没有什么区别,除了它们使用的内存量。

此应用使用默认的GC设置在.Net 4.6上运行。

0 个答案:

没有答案