这是来自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上的单位。
这不是一个标准的rusage
结构领域,所以POSIX不要求任何事情。 但在Linux上
ru_maxrss
(自Linux 2.6.32开始)这是使用的最大驻留集合大小( 以千字节为单位 )。 对于RUSAGE_CHILDREN,这是最大子级的驻留集大小,而不是进程树的最大驻留集大小。
手册页说:
ru_maxrss
(自Linux 2.6.32开始)这是使用的最大驻留集大小(以千字节为单位)。 对于RUSAGE_CHILDREN ,这是最大子级的驻留集大小,而不是进程树的最大驻留集大小。
所以,它以千字节表示,就像在BSD中一样。