我试图使用perfmon Windows实用程序来调试进程中的内存泄漏.
这就是perfmon解释这些术语的方式:
Working Set是此过程的工作集的当前大小(以字节为单位).工作集是过程中线程最近触及的一组内存页面.如果计算机中的可用内存超过阈值,则即使不使用页面,页面也会保留在进程的工作集中.当可用内存低于阈值时,将从工作集中剪裁页面.如果需要它们,它们将在离开主存储器之前被软故障返回工作集.
Virtual Bytes是进程正在使用的虚拟地址空间的当前大小(以字节为单位).使用虚拟地址空间不一定意味着相应地使用磁盘或主存储器页面.虚拟空间是有限的,并且该过程可以限制其加载库的能力.
Private Bytes是此进程分配的内存的当前大小(以字节为单位),无法与其他进程共享.
这些是我的问题:
是否应该测量私有字节,以确定进程是否有任何泄漏,因为它不涉及任何共享库,如果发生任何泄漏,将来自进程本身?
该进程消耗的总内存是多少?它是虚拟字节还是虚拟字节和工作集的总和?
私有字节,工作集和虚拟字节之间是否有任何关系?
还有其他工具可以更好地了解内存使用情况吗?