c - 限制C程序的CPU使用

标签 c linux cpu-usage

我需要编写一个消耗固定比例处理器的程序,我正在考虑更改优先级,但这种方法不会将 CPU 使用率限制在固定百分比,例如 60%。 谢谢!

最佳答案

取决于您希望此限制的时间段 - 如果您希望绝对限制永远不会使用超过 60%(或更少),那么它不能可靠地满足您的要求(不使用任何其他外部命令或程序)- 在一天结束时,操作系统决定您获得多少时间。

但是,如果您只是平均想要它,那么您可以这样做(有一些限制)。 基本上,设置一个循环,在启动时记录系统时间,执行少量工作,然后记录新的系统时间。现在让进程休眠 2/3(60%)的差异。您将需要保持缓冲,因为无法确保您不会睡得更久。 此外,如果您运行的是可抢占式内核(现在大多数都是这种内核),那么您就会遇到麻烦,因为循环执行本身可能会被接管。

tl;dr:您可以在没有外部代码的情况下大致做到这一点,但充其量也只是大致正确。

关于c - 限制C程序的CPU使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293157/

相关文章:

linux - 无法安装 Vision Workbench

Docker 容器 CPU 使用率

c++ - 无法将 C++ 与 C 对象链接

c++ - 在linux : segmentation fault上写的一个简单的C++共享内存程序

c - 索引到 C 中某些 `enum` 类型的值数组

linux - Windows 上的 GUI 在联网的 Linux 机器上运行 Linux 脚本?

c# - 线程和 sleep ()

linux - 为什么我的测量显示进程消耗的 CPU 时间比可用时间多?

c - ncurses:为什么 RGB 颜色值的范围是 0 - 1000?

c++ - 非阻塞 RPC 调用,使用 gSoap