【发布时间】:2011-11-10 10:01:10
【问题描述】:
我编写了执行特定任务的代码;现在我什么时候在不同的机器上运行(具有不同的频率)需要不同的时间吗?
质疑
如果我的代码有一个printf 函数,那么所有机器所需的机器周期数是固定的,还是取决于系统?
我的系统频率是2.0GHz,是什么意思?
【问题讨论】:
-
周期数将根据编译器生成的机器指令和 CPU 的体系结构而有所不同。在其他条件相同的情况下,速度将与时钟频率成正比。
-
@Tom 您的意思是,对于一个系统,printf () 是否有可能在 10 个机器周期内执行,而对于其他系统,它可能需要 15 个机器周期..?
-
嗯,对于像
printf这样涉及 I/O 的相当复杂的函数来说,这两个数字都非常小。但是,是的,可能会有很大的不同。这一切都取决于编译器如何翻译它以及机器的指令集。 -
@Tom 谢谢...有没有办法知道我的系统的任何功能/语句的机器周期,..?
-
编译到汇编,找出每条指令在你的机器上占用多少周期,然后模拟一个调用,我猜。分析器可能会告诉你。
标签: c performance architecture