Macos 如何在Mac OS上获得进程的峰值内存?
在linux中,当进程运行时,我可以通过查看Macos 如何在Mac OS上获得进程的峰值内存?,macos,memory,Macos,Memory,在linux中,当进程运行时,我可以通过查看/proc/self/status来检查其当前内存使用情况和历史峰值内存使用情况。mac中有类似的文件吗 在mac中,我发现vmmap pid提供了很多关于内存使用的信息,但似乎pid的peek内存使用没有被监控。请问是否有人可以帮助我执行任何命令?程序可以使用Mach API获取自己的内存统计数据。例如: #include <stdio.h> #include <mach/mach.h> #include <stdlib
/proc/self/status
来检查其当前内存使用情况和历史峰值内存使用情况。mac中有类似的文件吗
在mac中,我发现
vmmap pid
提供了很多关于内存使用的信息,但似乎pid的peek内存使用没有被监控。请问是否有人可以帮助我执行任何命令?程序可以使用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;
}
#包括
#包括
#包括
内部主(空)
{
克恩·瑞特;
机器任务基本信息数据信息;
马赫数信息类型计数=马赫数任务基本信息计数;
ret=任务信息(马赫任务自身(),马赫任务基本信息,(任务信息)&信息,计数);
if(ret!=KERN|u SUCCESS | count!=MACH_TASK_BASIC_INFO_count)
{
fprintf(stderr,“任务信息失败:%d\n”,ret);
退出(退出失败);
}
printf(“驻留大小最大值:%llu(0x%08llx)字节\n”,
(无符号长)info.resident\u size\u max,
(无符号长)信息常驻者(最大尺寸);
返回0;
}
或者,您可以使用分配模板在Instruments下运行程序,以观察其内存使用情况。(Xcode本身也有内存量表,但我不记得它是否显示了峰值使用量。)默认情况下,macOS中没有procfs。我想可能会有第三方软件包添加它,但我不确定。您希望通过编程或交互方式(仅通过
cat
-ing文件)获取此信息吗?@MarkSetchell谢谢您的链接!我也看到了这个问题,但似乎与具体进展无关。你的意思是我应该在我的程序中嵌入这样一个系统调用吗?@Kenthomass谢谢你的回答!我正在编写一些c程序,并希望在运行时分析其内存使用情况。