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 は、ページが 4096 バイトであると仮定した場合のメガバイト (256 pages * 4096 bytes per page = 1048576 bytes別名 2 20バイト、別名 1 メガバイト) のページ数です。vm_stat の数値はページ単位であり、ページ サイズが 4096 バイトであることも示しているため、必ずしも 256 をハードコーディングする必要はありません。
  2. 比較するアクティビティモニターが表示されていないため、確かなことは言えませんが、これもvm_stat、ページの単位と「人間が読める」単位を使用したアクティビティモニターを使用しているためであると思われます。実際、それらは同じ値です(または、Activity Monitor が継続的に更新されている場合は閉じます)。
于 2013-01-04T03:35:05.763 に答える