我使用这段代码尝试在执行程序时设置 -same- 高优先级:
CPU_SET(CPU_NUM, &cmask);
if (pthread_setaffinity_np(pid, sizeof(cmask), &cmask) < 0) {
LOG_ERROR("Could not set cpu affinity to core %d", CPU_NUM); goto exit_err;
}
errno = 0;
setpriority(PRIO_PROCESS, 0, -19);
该程序的目的是对一组恒定的输入(每 80 个字节)执行计算。
但是在执行程序时,这个计算所用的时间从 30% 到 150% 不等。
在绘制计算时间值时,我在等待一个非常平滑的图表,如果偏差大约为 10%-15%,但超过 40% !!!
所以我想问一下,如果CPU干扰了另一个程序的执行,如果是这样,我可以强制CPU只运行一个特定的程序吗?
提前致谢 !
PS我还没有找到可以回答我的问题的线程......
最相关的是:): Linux为一组进程(动态)保留一个处理器