簡體   English   中英

如何在 C 中獲取 CPU 使用率?

[英]How to get the CPU Usage in C?

我想在 C 中獲得應用程序的總體 CPU 使用率,就像我們在 TaskManager 中獲得的總 CPU 使用率......我想知道......對於 windows 和 linux :: current Total CPU usage by all processes .. ...正如我們在任務管理器中看到的。

這是特定於平台的:

  • 在Windows中,您可以使用GetProcessTimes()函數。
  • 在Linux中,您實際上可以使用clock()

這些可用於測量兩個時間間隔之間的CPU時間量。

編輯:

要獲得CPU消耗(以百分比表示),您需要將CPU總時間除以操作系統看到的邏輯核心數,然后除以總掛鍾時間:

% CPU usage = (CPU time) / (# of cores) / (wall time)

獲取邏輯核心數也是特定於平台的:

在POSIX下,你需要getrusage(2)的ru_utime字段。 僅對調用進程使用RUSAGE_SELF,對所有已終止和等待(2)編輯的子進程使用RUSAGE_CHILDEN。 Linux也僅為調用線程支持RUSAGE_THREAD。 如果需要系統時間,可以使用ru_stime,可以將其與ru_utime相加,以確定主動運行的總時間(不是掛起時間)。

它通常是特定於操作系統的。

你可以使用clock函數,返回一個clock_t (一些整數類型,可能long )。 在Linux系統上,它以微秒為單位測量CPU時間。

這使用 /proc/stat鏈接有很好的描述

這就是我想要的東西。 以我的方式操縱它,我成功地運行它。

獲取總CPU使用率

暫無
暫無

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

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