Jee*_*tel 0 c architecture performance
我编写了执行特定任务的代码; 现在,当我将在不同的机器(具有不同的频率)上运行时,它会花费不同的时间吗?
Ouestion
如果我的代码有一个printf功能,那么所有机器的所需机器周期数是否固定,还是取决于系统?
我的系统频率是2.0GHz,这是什么意思?
代码的执行时间取决于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.
计算机的主频当然对程序的执行时间有影响,但仅仅说处理器运行在2GHz是绝对不足以确定程序到底能运行多长时间,因为“效率”存在巨大差异处理器系列之间的差异 - 当两者以相同的速度运行时,英特尔酷睿系列处理器在每个时间单位将比其前身奔腾 4 执行更多的工作。
所以,是的,CPU 速度对程序的执行时间有严重影响,但仅仅 GHz 值是绝对不够的。这就是为什么设置了各种基准,以便能够比较处理器在一个时间单位内可以完成的工作。这些基准测试将运行可被视为所选场景中典型工作负载的指令组合,并计算执行所需的时间。查看Whetstone和Dhrystone以获得一些较旧但相对容易理解的基准测试。
存在大量基准的事实只能证明,获得每个人都同意其相关性的可比值并不容易,这仍然是一个争论的话题......