首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux (2.6.30)中getrusage是否中断

在Linux (2.6.30)中getrusage是否中断
EN

Stack Overflow用户
提问于 2011-08-26 22:00:31
回答 1查看 2.7K关注 0票数 8

这段代码

代码语言:javascript
复制
 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  );

}

许多字段只报告0,即使我在相当大的程序中使用它(在jvm启动之后)

代码语言:javascript
复制
   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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-26 22:04:26

是的,它有一部分坏了。并非所有字段都由内核填充。http://www.kernel.org/doc/man-pages/online/pages/man2/getrusage.2.html

工作字段:

代码语言:javascript
复制
   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)

未使用的字段:

代码语言:javascript
复制
   ru_ixrss (unmaintained)
   ru_idrss (unmaintained)
   ru_isrss (unmaintained)
   ru_nswap (unmaintained)
   ru_msgsnd (unmaintained)
   ru_msgrcv (unmaintained)
   ru_nsignals (unmaintained)
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7205806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档