任务管理器的大型VM页面大小和正常的内存使用量对应用程序意味着什么?它们是否意味着应用程序在内存使用方面表现不佳?
我们有一个应用程序,一些用户声称,他们的XP机器运行缓慢。
我们看到用户还运行其他繁重的应用程序。但是,当我们看到他们的任务管理器数据时,我们意识到任务管理中的“内存使用”列对于我们的应用程序是正常的,但VM大小与其他(包括繁重的应用程序)相比非常高。
E.g
应用X(重型应用和适度慢) - 实际使用量(500 MB) - VM使用率(600 MB)
我们的应用程序(正常尺寸应用程序和非常慢) - 实际使用量(200 MB) - VM大小(900 MB)< ====这表明我们的应用程序泄漏了吗?
有人可以为我提供更多的光吗?
THX
答案 0 :(得分:1)
嗯,这是一个小猪。泄漏是可能的,但只有在VM大小不受控制地攀爬时才开始检查。工作集当然可以远低于VM大小,未使用的内存页面将被换出,以便为其他进程提供所需的RAM。一个好的统计数据是Page Fault Delta,你必须添加它。如果这种情况激增,那么用户抱怨该程序减慢了一切可能是有效的。
有一种情况在.NET中并不常见,当你拥有大量的嵌入资源时,你会消耗大量的虚拟机,但很少有工作集。哪个没关系。
使用内存分析器当然是高度指示的,比任务管理器提供了更多的洞察力。