用VS2012编的C程序,不是很复杂但计算次数相当多的程序,比如用归递实现汉诺塔问题,我想知道在运行的时候CPU是完全利用的吗?
还有比如编写一个无限循环不断printf的程序,屏幕上打印字符串的速率是什么控制的。。
1、cpu执行一条命令的用时是固定的,例如一条printf语句在编译成机器码后交给cpu执行的话,cpu就需要1毫秒,这样就是1秒打印1000个字符串(仅是举例,实际时间可能不一样,但大体上是固定的)。
2、某个时刻可能CPU利用率会达到100%,但因为本身windows系统是多进程的,windows负责进程间切换。所以可能看起来是,但其实还是有一些windows消息(比如鼠标移动)的传递和处理,只不过大部分的cpu资源可能会被这个程序占用了
2、某个时刻可能CPU利用率会达到100%,但因为本身windows系统是多进程的,windows负责进程间切换。所以可能看起来是,但其实还是有一些windows消息(比如鼠标移动)的传递和处理,只不过大部分的cpu资源可能会被这个程序占用了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-04
cpu执行一条命令的用时是固定的,例如一条printf语句在编译成机器码后交给cpu执行的话,cpu就需要1毫秒,这样就是1秒打印1000个字符串(仅是举例,实际时间可能不一样,但大体上是固定的)
第2个回答 2012-12-04
某个时刻可能CPU利用率会达到100%,但因为本身windows系统是多进程的,windows负责进程间切换。所以可能看起来是,但其实还是有一些windows消息(比如鼠标移动)的传递和处理,只不过大部分的cpu资源可能会被这个程序占用了。本回答被提问者和网友采纳
第3个回答 2012-12-04
这和CPU的处理速度有关就是主频时钟,CPU是时分复用的,不会死掉,分配给某个进程的资源也是有限的