【发布时间】:2015-04-24 10:23:49
【问题描述】:
考虑到下面的 C 代码,我预计 CPU 利用率会上升到 100%,因为处理器会尝试完成分配给它的工作(在这种情况下是无休止的)。在运行可执行文件 5 分钟后,我发现 CPU 达到最大值。 48%。我正在运行 Mac OS X 10.5.8;处理器:英特尔酷睿 2 双核;编译器:GCC 4.1。
int i = 10;
while(1) {
i = i * 5;
}
有人能解释一下为什么 CPU 使用率没有达到 100% 吗?操作系统是否限制 CPU 达到 100%?
请注意,如果我在循环中添加“printf()”,CPU 会达到 88%。我知道在这种情况下,处理器还必须写入标准输出流,因此使用率急剧上升。
这与每单位时间分配给处理器的工作量有关吗?
问候, 文。
【问题讨论】: