工作集和提交大小有什么区别?

use*_*414 34 windows ram memory-leaks

在调试OOM错误时,工作集和提交大小之间有什么区别?特别是提交大小的确切含义是什么?

Cod*_*ked 30

这里开始,工作集是:

...物理内存(RAM)的计数而不是虚拟地址空间.它表示进程的虚拟地址空间的子集是有效的,这意味着它可以在不引发页面错误的情况下被引用.

提交大小是:

除页面文件之外没有分配任何后备存储的可分页虚拟地址空间的总量.在具有页面文件的系统上,可以将其视为最大潜在页面文件使用情况.在没有页面文件的系统上,它仍然被计数,但所有这样的虚拟地址空间必须始终保留在物理内存(RAM)中.

因此,您可以将工作集视为所使用的物理内存量,而提交大小则表示使用的虚拟内存量(不包括DLL或内存映射文件,可以通过页面文件以外的文件返回).

也就是说,当试图在.NET中找到"内存泄漏"时,这些数字通常不是很有用.相反,您应该使用第三方内存分析器.

  • 在投资(如果只是学习时间)在分析器中识别泄漏的内容之前,观察.NET内存性能计数器将为您提供很长的检测内存泄漏的方法. (3认同)