我正在尝试编写一个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中的页面空间如此之小(与活动监视器相比)
答案 0 :(得分:1)
256 pages * 4096 bytes per page = 1048576 bytes
又名2 20 字节,即1兆字节)的页数,假设页面是4096字节。来自vm_stat的数字在页面中,它也告诉你页面大小是4096字节,所以你不需要硬编码256。vm_stat
使用页面单位和活动监视器使用“人类可读”单位,并且它们确实是相同的值(或者在Activity Monitor不断更新的情况下接近)。