簡體   English   中英

當我從進程中檢查進程的CPU使用情況時,top命令返回0%的CPU使用率

[英]top command returns 0% CPU usage when I check my process's CPU usage from within the process

我編寫了一個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上手動運行相同的命令會返回相同的memry用法,但是我可以通過運行top來驗證有效的非零CPU。 我不明白為什么從系統內部嘗試時cpu的使用總是0%?

當您運行system命令時,當前進程將被掛起(不確定它是否是正確的術語,但不是以任何速率運行),等待您運行的命令結束。

它暫停時,其CPU使用率為0%,這是預期的。

要獲取正確的信息,您必須在單獨的線程或進程中運行system命令,以便程序可以繼續運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM