• linux下getrusage()


    #include <sys/resource.h>

    /* Return resource usage information on process indicated by WHO
    and put it in *USAGE. Returns 0 for success, -1 for failure. */
    extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __THROW;

    参数: 

    who:可能选择有

      RUSAGE_SELF:获取当前进程的资源使用信息。

      RUSAGE_CHILDREN:获取子进程的资源使用信息。

    usage:指向存放资源使用信息的结构指针

    #include <bits/resources.>

    /* Structure which says how much of each resource has been used. */
    struct rusage
    {
     /* Total amount of user time used. */
     struct timeval ru_utime;
     /* Total amount of system time used. */
     struct timeval ru_stime;
     /* Maximum resident set size (in kilobytes). */
     long int ru_maxrss;
     /* Amount of sharing of text segment memory
     with other processes (kilobyte-seconds). */
     long int ru_ixrss;
     /* Amount of data segment memory used (kilobyte-seconds). */
     long int ru_idrss;
     /* Amount of stack memory used (kilobyte-seconds). */
     long int ru_isrss;
     /* Number of soft page faults (i.e. those serviced by reclaiming
     a page from the list of pages awaiting reallocation. */
     long int ru_minflt;
     /* Number of hard page faults (i.e. those that required I/O). */
     long int ru_majflt;
     /* Number of times a process was swapped out of physical memory. */
     long int ru_nswap;
     /* Number of input operations via the file system. Note: This
     and `ru_oublock' do not include operations with the cache. */
     long int ru_inblock;
     /* Number of output operations via the file system. */
     long int ru_oublock;
     /* Number of IPC messages sent. */
     long int ru_msgsnd;
     /* Number of IPC messages received. */
     long int ru_msgrcv;
     /* Number of signals delivered. */
    long int ru_nsignals;
    /* Number of voluntary context switches, i.e. because the process
    gave up the process before it had to (usually to wait for some
    resource to be available). */
    long int ru_nvcsw;
    /* Number of involuntary context switches, i.e. a higher priority process

    became runnable or the current process used up its time slice. */
     long int ru_nivcsw;
     };

  • 相关阅读:
    转载:Python十分钟入门
    Think Python: How to Think Like a Computer Scientist
    LeetCode(34):搜索范围
    LeetCode(33):搜索旋转排序数组
    LeetCode(32):最长有效括号
    LeetCode(31): 下一个排列
    LeetCode(30):与所有单词相关联的字串
    LeetCode(29): 两数相除
    LeetCode(28): 实现strStr()
    LeetCode(27): 移除元素
  • 原文地址:https://www.cnblogs.com/xianzhedeyu/p/3516546.html
Copyright © 2020-2023  润新知