当我使用 gcc 运行这段代码时,
$ cat eatup.c
#include<stdio.h>
#include<stdlib.h>
int main() {
int i = 0;
while(1) {
i++;
}
}
$
CPU 图是这样的:
我不确定为什么 CPU 核心使用率存在交叉。
我在 40 标记左侧的上升点开始运行,然后最初 core2 的使用率上升到 100%,但过了一段时间后发生了切换,core1 的使用率上升到了 100%。
任何后续运行都没有重现这种情况。我得到的只是一次上升
这可能有点依赖于操作系统(在内核上调度进程),但有什么可以解释为什么会发生切换(如第一个屏幕截图所示)?有什么猜测吗?
事实证明,这些开关并不少见。这是启动后系统监视器的屏幕截图(Ubuntu 10.04)