在 FreeBSD 系统中按进程检索内存使用情况

Retrieve memory usage by process in FreeBSD system

在 Linux 中,我们可以使用 /proc/[id]/stat/proc/[id]/status.

按进程检索内存使用情况

但是在 FreeBSD 中我们没有文件 stat,并且在文件 /proc/[id]/status 中我们没有一个字段告诉我们具有特定 ID 的进程使用了​​多少内存。

那么,我该如何检索这个值?我想在我的 c++ 程序中检索此值以进行监视。

我想您正在寻找 procstat(1) 实用程序。例如,要检索资源使用情况,您可以使用命令:

procstat -r $PID

要将其用于自己的程序,有 libprocstat(3) 库。 "procstat -r" 使用函数 "procstat_getprocs" 来检索有关资源使用情况的信息,因此您可以使用以下源代码作为示例:https://github.com/freebsd/freebsd/blob/master/usr.bin/procstat/procstat_rusage.c

还有 getrusage(2) 系统调用。