在 Linux 中,当进程正在运行时,我可以通过查看 /proc/self/status
来检查其当前内存使用情况和历史峰值内存使用情况。 mac中有没有类似的文件?
在 mac 中,我发现 vmmap pid
提供了很多关于内存使用情况的信息,但似乎没有监控 pid 的内存使用情况。请问有没有人可以帮我做命令?
最佳答案
程序可以使用 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;
}
或者,您可以使用分配模板在 Instruments 下运行您的程序,以观察其内存使用情况。 (Xcode 本身也有内存量表,但我不记得它是否显示峰值使用量。)
关于macos - 如何在 Mac OS 上获得进程的峰值内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60751839/