當我使用'vmmap'(或樂器中的Allocations工具)時,其中一行輸出是'映射文件'。我怎樣才能以編程方式獲得這個數字?如何以編程方式獲取OSX上'映射文件'的大小?
的VMMap輸出:
REGION TYPE [ VIRTUAL]
=========== [ =======]
ATS (font support) [ 32.9M]
CG backing stores [ 110.1M]
CG raster data [ 64K]
CG shared images [ 2284K]
Carbon [ 3444K]
CoreGraphics [ 8K]
IOKit [ 512.8M]
MALLOC [ 264.7M]
Memory tag=240 [ 4K]
Memory tag=242 [ 12K]
Memory tag=243 [ 12K]
Memory tag=249 [ 192K]
OpenGL GLSL [ 3072K]
STACK GUARD [ 56.5M]
Stack [ 57.4M]
VM_ALLOCATE [ 827.7M]
__DATA [ 23.3M]
__DATA/__OBJC [ 12K]
__IMAGE [ 1240K]
__IMPORT [ 732K]
__LINKEDIT [ 80.1M]
__OBJC [ 1148K]
__OBJC/__DATA [ 12K]
__PAGEZERO [ 4K]
__TEXT [ 232.2M]
__UNICODE [ 536K]
mapped file [ 38.9M]
shared memory [ 580K]
shared pmap [ 7440K]
我已經讀過,但這是有點....如何使用vm_region或mach_vm_region來獲取映射的文件信息?它不是立即從源代碼清楚,並且vmmap源不可用。我唯一得到的是一箇舊的論壇帖子,上面寫道:「但是,獲得與vmmap完全相同的結果是一個挑戰,因爲它會執行各種聰明的低級別事情,這些事情不會從發行版兼容到-發佈。」 – pj4533 2011-03-15 14:02:20
您需要啓用mach級別的sdk並進行該調用。 – bmargulies 2011-03-15 15:30:48