在linux中,当进程正在运行时,我可以通过查看“ / proc / self / status”来检查其当前的内存使用情况以及历史上的峰值内存使用情况。 Mac中是否有类似的文件?
在Mac中,我发现“ vmmap pid”提供了有关内存使用情况的很多信息,但是似乎没有监视pid的偷看内存使用情况。请问有人可以帮助我吗?
谢谢!
答案 0 :(得分:1)
程序可以使用Mach API来获取自己的内存统计信息。例如:
#include <stdio.h>
#include <mach/mach.h>
#include <stdlib.h>
int main(void)
{
kern_return_t ret;
mach_task_basic_info_data_t info;
mach_msg_type_number_t count = MACH_TASK_BASIC_INFO_COUNT;
ret = task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&info, &count);
if (ret != KERN_SUCCESS || count != MACH_TASK_BASIC_INFO_COUNT)
{
fprintf(stderr, "task_info failed: %d\n", ret);
exit(EXIT_FAILURE);
}
printf("resident size max: %llu (0x%08llx) bytes\n",
(unsigned long long)info.resident_size_max,
(unsigned long long)info.resident_size_max);
return 0;
}
或者,您可以使用“分配”模板在“仪器”下运行程序,以观察其内存使用情况。 (Xcode本身也具有内存量规,但是如果它显示出峰值使用率,我就不会立刻回忆起。)