/tmp> ./res ixrss 0, idrss 0, isrss 0 /tmp> cat res.c #include <sys/resource.h> #include <stdio.h> #include <stdlib.h>
int main() { struct rusage usage; calloc(1, 1000000); getrusage(RUSAGE_SELF, &usage); printf("ixrss %d, idrss %d, isrss %d\n", usage.ru_ixrss, usage.ru_idrss, usage.ru_isrss); exit(0); }
Ядро 2.6.11, система FC4.
Хочется понять, почему выводятся нули, хотя кое-какая память процессом явно используется.
Вся структура usage выглядит так (gdb) print usage $1 = {ru_utime = {tv_sec = 0, tv_usec = 1999}, ru_stime = {tv_sec = 0, tv_usec = 2999}, ru_maxrss = 0, ru_ixrss = 0, ru_idrss = 0, ru_isrss = 0, ru_minflt = 617, ru_majflt = 0, ru_nswap = 0, ru_inblock = 0, ru_oublock = 0, ru_msgsnd = 0, ru_msgrcv = 0, ru_nsignals = 0, ru_nvcsw = 18, ru_nivcsw = 5}
Похоже, что я не понимаю чего-то принципиального относительно смысла полей про использованную память. Буду признателен за разъяснения.