限制C ++中的CPU使用率

时间:2016-09-17 14:39:12

标签: c++ linux multithreading

有没有办法限制C ++中的CPU使用率?

我的意思是我可以编写一个程序,它使用输入%CPU来使用它并使用最大量的CPU。

我基本上想在程序内部添加cpulimit命令的功能。

如果有,怎么办?

编辑:

环境:使用gcc 6.1的Linux(debian)。它应该支持尽可能多的任意数字。即1%-100%的范围。如果操作系统无法执行,则可以记录错误并使用最接近的值或操作系统限制该数字时建议的任何其他解决方案。

2 个答案:

答案 0 :(得分:1)

Linux不提供设置特定百分比的方法。但是,nice(2)系统调用会降低进程相对于系统上其他进程的优先级,从而相对于系统上的其他进程实现某种相对百分比的CPU。

您还可以使用setrlimit(2)系统调用将流程RLIMIT_CPU设置为固定金额。

答案 1 :(得分:0)

使用getrusage(),请参阅Linux commands to detect the computer resource usage of a program

当你检查,并且你已经使用了你想要的毫秒运行时间时,使用nanosleep()睡几毫秒。调整百分比以符合您的要求。