机器的频率是否会影响我的代码执行时间?

Jee*_*tel 0 c architecture performance

我编写了执行特定任务的代码; 现在,当我将在不同的机器(具有不同的频率)上运行时,它会花费不同的时间吗?

Ouestion

如果我的代码有一个printf功能,那么所有机器的所需机器周期数是否固定,还是取决于系统?

我的系统频率是2.0GHz,这是什么意思?

Jon*_*ler 5

代码的执行时间取决于CPU的频率以及许多其他因素.在所有其他条件相同的情况下,更快的CPU将花费更少的时间来执行相同的指令.但是其他可能影响时序的东西数量巨大,包括O/S,编译器,内存芯片,磁盘等.

如果机器具有相同的基本架构,则机器周期数是固定的.但是,现代CPU架构非常复杂,并且可能很容易出现变化,具体取决于机器上同时运行的其他内容.如果机器具有不同的芯片类型(即使在像Intel Core 2 Duo这样的系列中),那么结果可能会有所不同.如果这些机器具有不同的架构(例如Intel vs SPARC或PowerPC),则所有投注均已关闭.

如果'频率为2.0 GHz',则表示主CPU时钟周期为2.0 GHz.在那段时间内执行了多少指令取决于指令,并行性(多少个内核)和CPU类型等.CPU频率与总线频率是分开的,它控制着内存的读取速度(所以,我我使用的是2.0 GHz CPU,但内存总线的运行频率为1067 MHz.

  • "如果机器具有相同的基本架构,那么机器周期的数量是固定的" - 取决于您对相同基本架构的意义.即使忽略了内存性能等方面的差异,与同一芯片的1.0版本相比,芯片版本1.1可能会因某些指令而具有不同的周期数,即使在大多数情况下,您称之为"相同的架构" ".但是完全相同的芯片以不同的速度运行,循环次数也是一样的. (2认同)

fvu*_*fvu 5

计算机的主频当然对程序的执行时间有影响,但仅仅说处理器运行在2GHz是绝对不足以确定程序到底能运行多长时间,因为“效率”存在巨大差异处理器系列之间的差异 - 当两者以相同的速度运行时,英特尔酷睿系列处理器在每个时间单位将比其前身奔腾 4 执行更多的工作。

所以,是的,CPU 速度对程序的执行时间有严重影响,但仅仅 GHz 值是绝对不够的。这就是为什么设置了各种基准,以便能够比较处理器在一个时间单位内可以完成的工作。这些基准测试将运行可被视为所选场景中典型工作负载的指令组合,并计算执行所需的时间。查看WhetstoneDhrystone以获得一些较旧但相对容易理解的基准测试。

存在大量基准的事实只能证明,获得每个人都同意其相关性的可比值并不容易,这仍然是一个争论的话题......