我正在尝试使用perfmon,并根据MSDN ,“系统代码总字节”计数器…
显示当前在虚拟内存中的可分页操作系统代码的大小(以字节为单位)。 它是操作系统在不使用时可写入磁盘的物理内存量的度量。 通过添加Ntoskrnl.exe,Hal.dll,引导驱动程序和Ntldr / osloader加载的文件系统中的字节来计算此值。 该计数器不包括必须保留在物理内存中且不能写入磁盘的代码。
但是这不是一个矛盾吗? 它说这是“虚拟内存的大小”,下一句话是“正在使用的物理内存的数量”。 根据我的理解,仅仅因为存在虚拟内存并不意味着有任何物理内存映射到它,因为当没有足够的物理内存时,可以将内存分页到磁盘上的页面文件。 所以虚拟内存的大小和物理内存的大小明显不同。
另一件令我困惑的事情是“通过添加Ntoskrnl.exe,Hal.dll中的字节,引导驱动程序和Ntldr / osloader加载的文件系统来计算值”。 那么不pipe这些文件中有多less文件加载到虚拟/物理内存中,这个数字都不是一个常量?
有人能帮我理解这个柜台是什么意思吗?
这可能是一个打字错误,因为相关的计数器“系统代码驻留字节”包括描述“显示当前在物理内存中的操作系统代码的大小(以字节为单位),这些代码可以在不使用时写入磁盘”。 它进一步解释说:“这个值是内存\系统代码总字节的一个组成部分,其中还包括磁盘上的操作系统代码。”
因此,“系统代码总字节数”是虚拟内存中的总字节数,包括驻留(在物理内存中)和非驻留(在磁盘上)。
关于第二个问题:“系统代码总字节”的值可能确实是相当恒定的,但“系统代码常驻字节”可能不是。 总字节数有助于计算驻留/非驻留字节的百分比。