Linux

我的應用程序使用 ~100% CPU 好不好

  • April 13, 2016

我有一個在 Linux(Ubuntu 12.14)上用 C++ 編寫的應用程序,它解碼音頻並找到峰值。此計算在後台執行緒上執行。從主 UI 執行緒,我多次呼叫後台執行緒。當這個後台執行緒執行時,我看到大約 100% 的 CPU 使用率;也就是說,只有第一個核心的使用率達到 100%,其餘 3 個核心處於空閒狀態(四核處理器)。

那麼應用程序使用 100% CPU 是不是很好呢?我讀過一些文章,其中指出:“通常,一個程序使用 100% 的 CPU 是一件好事。這意味著它完成得更快。”

我讀過的另一句話是,“75% 到 100% 的 cpu 使用率並不算太糟糕,如果你在滿負荷或有一個主要應用程序執行的情況下得到它;但是,如果這是一個空閒時的讀數,或者當你沒有使用 PC/筆記型電腦,那麼這很令人擔憂。”

這取決於您的應用程序是計算應用程序(像這樣)還是互動式應用程序。

對於計算應用程序,充分利用 CPU 是您的目標,因為這意味著結果可以更快地準備好。任何導致使用率下降的事情都是改進的機會(例如等待 I/O)。

對於互動式應用程序,CPU 中使用的任何時間都是未用於響應使用者輸入的時間。你希望你的使用率很低。

一些應用程序,例如多媒體編輯器,既是計算的又是互動式的。好的將工作分成不同的執行緒,以便它們可以響應互動,同時實現高吞吐量。這似乎是你正在做的事情。

您可能要考慮的一件事是為您的工作負載使用更多執行緒(假設它是可分割的),以便讓更多核心忙於計算。如果其中一些是空閒的,那就是浪費資源!

引用自:https://unix.stackexchange.com/questions/276237