在Linux中使用getrusage损坏(2.6.30) [英] Is getrusage broken in Linux (2.6.30)
本文介绍了在Linux中使用getrusage损坏(2.6.30)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这code
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启动后)
reports only zeroes for many fields, even if I use it in rather big program (after jvm start)
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
, *交换
, MSG *
, *块
, *信号
是零。
是不是有什么坏了?
Linux是86 2.6.30。
Linux is x86 2.6.30.
推荐答案
是的,这部分是坏了。并不是所有的字段由内核填写。 <一href=\"http://www.kernel.org/doc/man-pages/online/pages/man2/getrusage.2.html\">http://www.kernel.org/doc/man-pages/online/pages/man2/getrusage.2.html
Yes it is partly broken. Not all fields are filled by kernel. 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)
这篇关于在Linux中使用getrusage损坏(2.6.30)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文