在无限循环期间CPU是否空闲?

时间:2017-09-27 10:11:04

标签: performance batch-file cpu-usage

以下是 Java性能:最终指南

一书中的一段。
  

您编写了一个包含无限循环的简单脚本。当那个   脚本被执行,它将消耗100%的CPU。以下批次   工作将在Windows中完成:

ECHO OFF   
:BEGIN  
ECHO LOOPING   
GOTO BEGIN  
REM We never get here...   
ECHO DONE  
     

考虑一下如果这个脚本没有消耗100%的话会是什么意思   中央处理器。这意味着操作系统可以做到这一点   do-it可以打印另一行说LOOPING, 但它选择了   而是闲着 。在这种情况下,闲着对任何人都无济于事,   如果我们正在做一个有用的(冗长的)计算,强制CPU   定期闲置意味着需要更长的时间才能获得   我们追求的答案。

我发现很难理解为什么无限循环会让CPU空闲?

1 个答案:

答案 0 :(得分:2)

我认为您误解了文本 - 无限循环会占用所有可用的CPU周期。

当这本书说“但它选择了闲置”时,它只是说如果无限循环脚本没有占用100%的CPU,那么它可能已经决定空闲对于某些周期(从来都不是这样,因为它浪费了可用的处理能力)。