自从我们将Windows Forms应用程序的构建版本更改为64位并推出以来,一些用户抱怨它感觉缓慢,有时会冻结长达10甚至15秒。
在同一主机上的相同虚拟机上同时运行64位和32位版本,两者都需要大约相同的启动时间,并且只要有足够的可用RAM,它们的响应速度也类似。但是64位版本的消耗大约是32位版本的1.5倍(以“专用字节”衡量)。
现在,当我减少虚拟机的可用RAM量时,启动64位版本所需的时间要长得多-这似乎是有道理的,因为内存消耗较高,因此必须执行更多的GC操作,用很少的内存来做。
我能提出的唯一理论是,那些冻结的客户的内存不足,无法使用我们的64位应用程序,从而导致交换和/或GCing。
那是什么意思
还是 32位和64位之间还有什么其他区别,可以使64位冻结?
32位垃圾收集器和64位垃圾收集器之间似乎没有什么区别,除了它们使用的内存量。
此应用使用默认的GC设置在.Net 4.6上运行。