Как продолжать процесс, пока у меня почти не кончится память - PullRequest
0 голосов
/ 11 мая 2019

Я хочу продолжать процесс, пока у меня почти не останется памяти.Как узнать, сколько раз я могу выполнить процесс без сбоев?

1 Ответ

0 голосов
/ 11 мая 2019

Вот программа для расчета оценки (с использованием Linux API):

#include <sys/resource.h>
#include <sys/sysinfo.h>
#include <stdio.h>

unsigned long maxmem() {
    struct sysinfo info;
    if (sysinfo(&info) < 0)
        return 0;
    return info.freeram;
}

long getmem(void) {
    struct rusage r_usage;
    getrusage(RUSAGE_SELF,&r_usage);
    return r_usage.ru_maxrss;
}

int main() {
    printf("Can fork %d times. Mfm: %d, upp: %d\n", maxmem() / 1024 / getmem(), maxmem() / 1024, getmem());
    return 0;
}

Обратите внимание, что это только оценка, вам может понадобиться запустить этот код внутри приложения, когда он достигнет пика использования памяти.

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