在Linux(2.6.30)中破坏了getrusage

这个代码

void print_usage(char * msg) { struct rusage usage; getrusage(RUSAGE_SELF, &usage); printf("Limits: %s\n", msg); printf(" %s, %li\n", " maximum resident set size " , usage.ru_maxrss ); printf(" %s, %li\n", " integral shared memory size " , usage.ru_ixrss ); printf(" %s, %li\n", " integral unshared data size " , usage.ru_idrss ); printf(" %s, %li\n", " integral unshared stack size " , usage.ru_isrss ); printf(" %s, %li\n", " page reclaims " , usage.ru_minflt ); printf(" %s, %li\n", " page faults " , usage.ru_majflt ); printf(" %s, %li\n", " swaps " , usage.ru_nswap ); printf(" %s, %li\n", " block input operations " , usage.ru_inblock ); printf(" %s, %li\n", " block output operations " , usage.ru_oublock ); printf(" %s, %li\n", " messages sent " , usage.ru_msgsnd ); printf(" %s, %li\n", " messages received " , usage.ru_msgrcv ); printf(" %s, %li\n", " signals received " , usage.ru_nsignals); printf(" %s, %li\n", " voluntary context switches " , usage.ru_nvcsw ); printf(" %s, %li\n", " involuntary context switches " , usage.ru_nivcsw ); } 

只对很多领域报告为零,即使我在相当大的程序中使用它(在jvm启动之后)

  maximum resident set size , 0 integral shared memory size , 0 integral unshared data size , 0 integral unshared stack size , 0 page reclaims , 2514 page faults , 0 swaps , 0 block input operations , 0 block output operations , 0 messages sent , 0 messages received , 0 signals received , 0 voluntary context switches , 137 involuntary context switches , 1 

非零字段是“ *vcsw ”,“ *flt ”。

所有*rss*swapmsg**block*signals都是零。

有什么东西坏了吗?

Linux是x86 2.6.30。

Solutions Collecting From Web of "在Linux(2.6.30)中破坏了getrusage"

是的,它是部分破碎。 并不是所有的字段都被内核填充。 http://www.kernel.org/doc/man-pages/online/pages/man2/getrusage.2.html

工作领域:

  ru_utime ru_stime ru_maxrss (since Linux 2.6.32) ru_minflt ru_majflt ru_inblock (since Linux 2.6.22) ru_oublock (since Linux 2.6.22) ru_nvcsw (since Linux 2.6) ru_nivcsw (since Linux 2.6) 

未使用的字段:

  ru_ixrss (unmaintained) ru_idrss (unmaintained) ru_isrss (unmaintained) ru_nswap (unmaintained) ru_msgsnd (unmaintained) ru_msgrcv (unmaintained) ru_nsignals (unmaintained)