Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在Mac OS上获得进程的峰值内存?_Macos_Memory - Fatal编程技术网

Macos 如何在Mac OS上获得进程的峰值内存?

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

在linux中,当进程运行时,我可以通过查看
/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程序,并希望在运行时分析其内存使用情况。