我编写了执行特定任务的代码;现在当我在不同的机器上运行(频率不同)时会花费不同的时间吗?
Ouestion
如果我的代码有一个printf
功能,那么所有机器的所需机器周期数是否固定,还是取决于系统?
我的系统频率为2.0GHz,这是什么意思?
答案 0 :(得分:5)
代码的执行时间取决于CPU的频率以及许多其他因素。在所有其他条件相同的情况下,更快的CPU将花费更少的时间来执行相同的指令。但是其他可能影响时序的东西数量巨大,包括O / S,编译器,内存芯片,磁盘等。
如果机器具有相同的基本架构,则机器周期数是固定的。但是,现代CPU架构非常复杂,并且可能很容易出现变化,具体取决于机器上同时运行的其他内容。如果机器具有不同的芯片类型(即使在像Intel Core 2 Duo这样的系列中),那么结果可能会有所不同。如果这些机器具有不同的架构(例如英特尔与SPARC或PowerPC),则所有投注均已关闭。
如果'频率为2.0 GHz',则表示主CPU时钟周期为2.0 GHz。在那段时间内执行了多少指令取决于指令,并行性(多少个内核)和CPU类型等.CPU频率与总线频率是分开的,它控制着内存的读取速度(所以,我我使用的是2.0 GHz CPU,但内存总线的运行频率为1067 MHz。
答案 1 :(得分:4)
计算机的时钟速度当然会对程序的执行时间产生影响,但只是声明处理器以2 GHz的速度运行,这绝对不足以确定程序运行的时间长度,因为处理器系列之间在“效率”方面存在巨大差异 - 英特尔酷睿系列处理器每个时间单元的工作量比前一代产品Pentium 4要多得多,而且两者都以相同的速度运行。
所以,是的,CPU速度对程序的执行时间有严重影响,但只有GHz值是绝对不够的。这就是设置各种基准测试的原因,以便能够比较处理器在一个时间单位中可以完成的工作。这些基准测试将运行混合指令,这些指令可被视为所选方案中的典型工作负载,以及执行所需的时间。查看Whetstone和Dhrystone了解一些较旧但相对容易理解的基准。
事实上,有大量的基准只能证明获得每个人都同意的相关价值并不容易,它仍然是一个争论的话题......
答案 2 :(得分:0)
CPU的频率定义了它在一定时间内可以完成的工作量。所有机器上的代码都是相同的(即它是编译代码),所以频率会影响运行程序所需的时间。