Ash*_*ppa 14 windows memory-management process-explorer
在Process Explorer中可用的Memory图中,顶部的图显示了Commit History.这在操作系统级别实际表明了什么?
为了试验这是否是进程在堆上分配的内存,我编写了一个小程序,该程序逐步malloc-ed 100 MB多次.提交历史记录图表增加了一段时间(内存分配高达1.7 GB)并且在此之后没有增长,尽管程序内存存储器.
那么,这个图表表示什么?如何使用这些信息来理解/分析Windows的状态?
P.T*_*.T. 20
提交级别是分配给系统中所有进程的匿名虚拟地址空间量.(它不包括任何文件支持的虚拟地址空间,例如,来自mmap的文件.)在进程资源管理器中,"提交历史记录"图表显示了该值随时间的大小.
由于虚拟内存的分配和分配方式(支持虚拟地址空间页面的实际RAM在第一次触摸之前不一定分配),此当前"提交"级别表示内存的最坏情况(此刻)该系统可能需要提出.与Linux不同,Windows不会为RAM提供承诺(地址空间),也不会伪造(通过分页文件).因此,一旦提交级别达到系统限制(大致为RAM +页面文件大小),新的地址空间分配将失败(但现有虚拟地址空间区域的新用法不会失败).
关于您的系统的一些结论,您可以从这个值中得出:
您的实验验证了这一点.我怀疑你遇到地址空间限制(Windows中的32位进程限制为2GB ......可能300MB消失到碎片,库和文本?).