Windows 中的内存管理方案非常复杂,我试图更好地理解它,以便更准确地诊断内存问题。
例如,我们的 C++ 应用程序(在 SysInternal 的 Process Explorer 中)显示 1.4GB 的“虚拟大小”、400MB 的“私有字节”和 366MB 的“工作集”。
我做了一些研究,发现了这个问题: 什么是私有字节、虚拟字节、工作集?
这是一本很好的读物,但有些东西仍然没有加起来。具体来说,投票最高的答案表明虚拟字节包括备用列表。我不太确定这些是什么,而且我所做的任何研究都没有对它做出友好的解释。我最大的问题是:将页面移动到备用列表如何影响应用程序的虚拟地址空间(如果有的话)?换句话说,虚拟大小比任何其他大小都大得多,差异是内存碎片吗?
如果有人可以帮助我更好地理解这一点,我将不胜感激。提前致谢!