5

我正在尝试编写一个 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 中的空闲页面怎么这么小(与活动监视器相比)

4

1 回答 1

1
  1. 256 是以兆字节为单位的页面数(256 pages * 4096 bytes per page = 1048576 bytes又名 2 20字节又名 1 兆字节),假设页面为 4096 字节。vm_stat 中的数字以页为单位,它还告诉您页大小为 4096 字节,因此您不必硬编码 256。
  2. 由于您没有显示活动监视器来比较我不能肯定地说,但我怀疑这又是由于vm_stat使用页面单元和使用“人类可读”单元的活动监视器,它们确实是相同的值(或关闭,因为活动监视器不断更新)。
于 2013-01-04T03:35:05.763 回答