0
我試圖確定當前進程在Mac OS X上使用多少內存。具體來說,top如何計算每個進程的MEM列中顯示的值?活動監視器在「內存」選項卡上的每個進程的「內存」列中顯示相同的值。從C++獲取進程的內存使用情況
有網絡上的幾頁(如this answer)提示如下:
struct task_basic_info tinfo;
mach_msg_type_number_t count = TASK_BASIC_INFO_COUNT;
task_info(
mach_task_self(), TASK_BASIC_INFO,
(task_info_t) &tinfo, &count);
// memory usage is in tinfo.resident_size;
但返回的值是關閉了近2倍(如上面顯示64 MB,而該代碼報告105MB )。 top和Activity Monitor如何查找進程的內存使用情況?
你可以檢查'top'字段'rprvt'是否匹配這段代碼的結果嗎? –
@JohnZwinck RPRVT字段小於MEM字段。目前的值是:MEM:63M,RPRVT:45M,VPRVT:170M,VSIZE:2679M。代碼片段報告100M – roeland
類似的問題在這裏:活動監視器190MB,XCode調試工具:244MB,task_info:320MB。頂級報告爲XCode 244MB –