ProcessmacOS 10.13.4 -
macOS 10.13.4 - renice
似乎沒有效果
我正在嘗試
renice
在我的 Mac 上測試該命令,它似乎沒有任何效果。這就是我測試它的方式:我有一個帶超執行緒的雙核 CPU,所以我執行了 6 個實例,
node -e 'while(1){}'
這些實例加起來可以最大限度地利用我的 CPU。(或者,while true; do echo running > /dev/null ; done
如果您沒有節點,請執行。)然後,我通過活動監視器應用程序或 獲取其中一個節點程序的 PID,
pgrep
然後執行sudo renice -n 19 -p $PID
.通過查看活動監視器應用程序或
htop
,所有節點程序的 CPU 使用率仍然相等:我的理解是,我的程序
renice
優先級較低,因此當有其他程序使用它時,不會佔用大量 CPU 時間。我誤解了什麼
renice
嗎?或者這是 macOS 中的錯誤?
執行一些基本測試我也在 10.13.4 上看到了這一點。
我寫了一個名為 looper 的小 C 程序,它在無限循環中做了一些基本的數學運算:
#include <stdio.h> int main(){ unsigned long long prev = 0; unsigned long long current = 1; unsigned long long total = 0; while(1){ total = current + prev; prev = current; current = total; printf("%llu\n", total); } }
我在我的 FreeBSD 機器上執行了多個副本,並使用
htop(1)
. 使用renice(8)
我可以看到 Nice 值正在增加,Priority 值正在增加,並且 CPU 百分比降低 - 預期行為。我在 macOS 10.13.4 上執行了相同的程序並重複了該過程。雖然我可以看到 Nice 值在增加,但 Priority 值和 CPU 百分比保持一致。
我想知道這是否是一個錯誤,我之前沒有理由仔細研究 macOS 中的 Nice 值——這種行為已經足夠接近我所期望的,我並不傾向於調查。
如果您有開發者帳戶,則值得向 Apple 報告。