17

これはman getrusage

struct rusage {
    struct timeval ru_utime; /* user time used */
    struct timeval ru_stime; /* system time used */
    long   ru_maxrss;        /* maximum resident set size */
    long   ru_ixrss;         /* integral shared memory size */
    long   ru_idrss;         /* integral unshared data size */
    long   ru_isrss;         /* integral unshared stack size */
    long   ru_minflt;        /* page reclaims */
    long   ru_majflt;        /* page faults */
    long   ru_nswap;         /* swaps */
    long   ru_inblock;       /* block input operations */
    long   ru_oublock;       /* block output operations */
    long   ru_msgsnd;        /* messages sent */
    long   ru_msgrcv;        /* messages received */
    long   ru_nsignals;      /* signals received */
    long   ru_nvcsw;         /* voluntary context switches */
    long   ru_nivcsw;        /* involuntary context switches */
};

ただし、単位は特定されていません。

FreeBSD のドキュメンテーションでキロバイト単位であると書かれているのを見ましたが、Linux での単位はわかりません。

4

2 に答える 2

19

これは構造体の標準フィールドでrusageはないため、POSIX はそれについて何も義務付けていません。しかしLinux では

ru_maxrss(Linux 2.6.32 以降)

これは、使用される常駐セットの最大サイズです (キロバイト単位)。RUSAGE_CHILDREN の場合、これは最大の子の常駐セット サイズであり、プロセス ツリーの最大常駐セット サイズではありません。

于 2012-08-21T08:33:21.660 に答える
5

マニュアルページには次のように書かれています:

ru_maxrss(Linux 2.6.32 以降)

これは、使用される常駐セットの最大サイズ (キロバイト単位) です。RUSAGE_CHILDRENの場合、これはプロセス ツリーの最大常駐セット サイズではなく、最大の子の常駐セット サイズです。

つまり、BSD と同じようにキロバイトで表されます。

于 2012-08-21T08:33:16.120 に答える