Как я могу получить пиковую память процесса на ОС Ma c? - PullRequest
1 голос
/ 19 марта 2020

В linux, когда процесс запущен, я могу проверить его текущее использование памяти и исторически пиковое использование памяти, просматривая "/ proc / self / status". Существуют ли похожие файлы в ma c?

В ma c я обнаружил, что «vmmap pid» дает много информации об использовании памяти, но, похоже, использование pid-памяти pid не отслеживается. Могу я спросить, может ли кто-нибудь помочь мне с любой командой?

Спасибо!

1 Ответ

1 голос
/ 20 марта 2020

Программа может использовать 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 также имеет датчики памяти, но я не припоминаю, если он показывает пиковое использование.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...