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 回答