Answers:
恐怕不是那么简单。特别是,专用字节对于回答您提出的问题不是很有用。
首先要记住的是,内存页可能存在于主内存或外部存储中(这些天称为“磁盘分页”或“交换”)。第二个是,一个进程将在其内存中拥有专用的内存页面,但也会使用共享页面中的对象,而其他进程正在同时使用这些对象。
工作集是属于该进程的页面的大小,当前存储在主内存中。当进程使用的内存页面移到页面文件时,会将其从工作集指标中删除,并且当将其调回主内存时,会再次添加它。
但是,工作集并非专门指您的进程拥有的内存。进程使用许多共享内存对象,这些对象的大小反映在统计信息中。不幸的是,当两个进程共享一个1MB的对象时,两个进程都在工作集中显示1MB的分配,因此,如果将所有工作集相加,则该1MB对象将被记录两次,因此所有工作集大小的累积可能在极端情况下,似乎超过了可用的滑枕的大小。在此处查看更多信息:http : //cybernetnews.com/cybernotes-windows-memory-usage-explained/
专用字节是指在完全调出要交换的进程专用内存占用量的情况下分配给该进程(不一定使用)的Page文件空间的数量。在大多数情况下,该过程并不完全(或根本没有)驻留在页面文件中,因此这就是为什么专用字节似乎具有“空间”供进一步分配的原因。但是事实并非如此。
但是,专用字节仅指代进程的专用内存,因此此值可能无法反映共享资源(即使当前仅由该进程使用共享资源)。
“工作集专用”(进程浏览器中的“ WS专用字节”或“私有WS”,取决于版本)可能是您使用的最佳指标。它与页面文件无关,因此您可以准确地表示对物理内存的影响,并且不会对共享对象进行双重计数。计算共享对象一次(仅针对创建它们的流程),但这也意味着从单流程角度来看,您没有在记录您的流程使用了由另一个流程创建的共享对象,因此您的流程可能在另一个上使用了更多内存。计算机或需要创建共享库本身而不是使用它的另一个进程实例的情况。Windows任务管理器使用专用工作集作为其内存使用率指标。
希望能有所帮助