我首先在此问题中发布了有关此问题的信息:
Indexed branch overhead on X86 64 bit mode
此后,我在其他一些汇编代码程序中注意到了这一点,其中align 16影响不大,或者在某些情况下会使情况更糟。在我之前的问题中,我还比较了对齐方式与16的偶数或奇数倍的对齐方式,在小而紧的循环情况下有显着差异。
我遇到的这个问题的最新示例是一个程序,该程序使用4项arctan系列(Machin类型Forumla)结合多线程(使用的方法的微型版本)将pi计算为大约一百万个数字2002年在东京大学获得超过1万亿个数字
http://www.super-computing.org/pi_current.html.en
对齐几乎对计算时间没有影响,但是删除对齐会使从分数到十进制的转换从7.5秒减少到6.8秒,减少了9%以上。在某些情况下,重新安排计算代码会将时间从98秒增加到109秒,增加了大约11%。但是,最坏的情况是我先前的问题,根据循环的位置,紧密循环的时间增加了36.5%。
我想知道这是否特定于我正在运行这些测试的Intel 3770K 3.5 GHz处理器。