Windows Process Explorer:提交历史记录图显示什么?
在Process Explorer中可用的内存图表中,顶部的图表显示提交历史记录。这在操作系统级别上实际表明了什么 为了测试这是否是进程在堆上分配的内存,我编写了一个小程序,多次递增malloc 100 MB。提交历史图增长了一段时间(高达1.7GB的内存分配),此后没有增长,尽管程序在内存上进行了malloc操作Windows Process Explorer:提交历史记录图显示什么?,windows,memory-management,process-explorer,Windows,Memory Management,Process Explorer,在Process Explorer中可用的内存图表中,顶部的图表显示提交历史记录。这在操作系统级别上实际表明了什么 为了测试这是否是进程在堆上分配的内存,我编写了一个小程序,多次递增malloc 100 MB。提交历史图增长了一段时间(高达1.7GB的内存分配),此后没有增长,尽管程序在内存上进行了malloc操作 那么,这张图显示的是什么?如何使用此信息了解/分析Windows的状态?提交级别是分配给系统中所有进程的匿名虚拟地址空间量。(它不包括任何文件支持的虚拟地址空间,例如,来自mmap文
那么,这张图显示的是什么?如何使用此信息了解/分析Windows的状态?提交级别是分配给系统中所有进程的匿名虚拟地址空间量。(它不包括任何文件支持的虚拟地址空间,例如,来自mmap文件的虚拟地址空间。)在process explorer中,“提交历史记录”图表显示该值随时间的大小 由于分配和分配虚拟内存的方式(支持一页虚拟地址空间的实际RAM在第一次接触之前不一定分配),当前的“提交”级别代表了系统可能必须提供的最坏的内存情况(此时)。与Linux不同,Windows不会为它无法提供的RAM或伪造的RAM(通过分页文件)提供承诺(地址空间)。因此,一旦提交级别达到系统的限制(大致为RAM+分页文件大小),新的地址空间分配将失败(但现有虚拟地址空间区域的新使用不会失败) 从该值中可以得出一些关于系统的结论:
- 如果该值小于当前RAM(内核和系统开销除外),则系统不太可能交换(使用分页文件),因为在最坏的情况下,所有内容都应该放在内存中
- 如果该值远大于物理内存使用量,则某些程序正在分配大量虚拟地址空间,但尚未使用它
- 退出应用程序将减少提交的内存使用,因为它的所有虚拟地址空间都将被清除