控制CPU占用率曲线

编程之美的第一个问题,我的机器是双核的,用文中的代码,得到的曲线波动比较大额,受其他进程的影响比较大。文中提到10ms接近windows的调度时间片,如果选得太小,会造成线程被频繁唤醒和挂起,造成内核不稳定。

#include "windows.h"
#include "stdlib.h"
#include "math.h" // 时间片的尺度大概是 10 ms
void control_cpu_percentage(int per) {
DWORD sleep_time = ; //ms
DWORD busy_time = per * sleep_time / ( - per);
DWORD start = GetTickCount(); while (true) {
while (GetTickCount() - start <= busy_time);
Sleep(sleep_time);
start = GetTickCount();
}
} int main() {
SetThreadAffinityMask(GetCurrentThread(), );
control_cpu_percentage();
//while(1);
}
上一篇:“IPSec 共享密钥”丢失。


下一篇:MySQL管理_数据库常用命令