【发布时间】:2016-11-02 20:08:18
【问题描述】:
我编写了一个 C 程序,它需要获取自己的 CPU 和内存使用情况。所以我写了这样的东西:
system("prs_pid=`ps | grep prs-m1 | awk '{print $1}'` \n top -n1 | grep -m1 $prs_pid | \
awk '{print \"prs_cpu:\" $7 \"\\nprs_mem:\" $6}' >> /stats");
我的应用程序名称是 prs,我执行 PS 并获取进程的 pid,然后想从运行 TOP 中获取 CPU 使用率。该程序报告它正在使用 2% 的内存和 0% 的 CPU。但是,在 cmd 上手动运行相同的命令会返回相同的内存使用情况,但会返回一个有效的非零 CPU,我可以通过运行 top 来验证它。我不明白的是,为什么从系统内部尝试时 cpu 使用率总是 0%?
【问题讨论】:
-
如果您使用的是 Linux,请阅读
/proc: stackoverflow.com/q/16726779/8446