了解mac os中的vm_stat,如何将这些数字转换为类似于活动监视器的数字?

时间:2013-01-04 03:19:31

标签: cocoa memory virtual-memory activity-monitor

我正在尝试编写一个mac os程序来监视系统(类似于活动监视器)。我查看了函数vm_stat,当我运行它时我得到了这个:

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                         438386.
Pages active:                       236438.
Pages inactive:                     113750.
Pages speculative:                   34293.
Pages wired down:                   225027.
"Translation faults":             11132566.
Pages copy-on-write:                319385.
Pages zero filled:                 6618647.
Pages reactivated:                   23071.
Pageins:                            421804.
Pageouts:                           153240.
Object cache: 14 hits of 24183 lookups (0% hit rate)

然而,当我运行活动监视器时,我得到了类似的东西:

Page Ins: 1.61gb (8.00kb/sec)
Page outs: 598.6 MB

我对此有疑问:为什么vmstat中的页面空间如此之小(与活动监视器相比)

1 个答案:

答案 0 :(得分:1)

  1. 256是一个兆字节(256 pages * 4096 bytes per page = 1048576 bytes又名2 20 字节,即1兆字节)的页数,假设页面是4096字节。来自vm_stat的数字在页面中,它也告诉你页面大小是4096字节,所以你不需要硬编码256。
  2. 由于您没有显示活动监视器进行比较,我不能肯定地说,但我怀疑这是由于vm_stat使用页面单位和活动监视器使用“人类可读”单位,并且它们确实是相同的值(或者在Activity Monitor不断更新的情况下接近)。