我已经编写了源代码,我想测量效率,即完成特定任务需要多少个时钟周期。在哪里可以了解不同命令需要多少个时钟周期?每个命令在8086上都花费相同的时间吗?
答案 0 :(得分:1)
RDTSC是高分辨率时钟提取指令。
请记住,缓存未命中,上下文切换,指令重新排序和流水线操作以及多核争用都会干扰结果。
答案 1 :(得分:0)
时钟周期和效率不是一回事。
为了提高代码效率,您需要特别考虑内存是如何实现的,特别是缓存的不同级别。同样重要的是代码的分支预测等。您需要一个能够告诉您这些事情的分析器,理想情况是为您提供特定于配置文件的信息:示例是AMD芯片的CodeAnalyst。
要回答您的问题,特定的基本指令确实具有给定(平均)的周期数(AMD会在其数学库中发布基本数学函数的近似数字)。但是,这些数字是开始优化代码的不利位置。