我正在研究一些代码,其中包含一些(编译器生成的)汇编代码块,我们已经确定这些代码是速度瓶颈。
我对组装过程充分了解并寻找手动优化 - 但我想知道,如果有任何优秀的在线指南提供可重复使用的技术,可用于手动优化装配。这不是我希望我经常要做的事情,所以我很可能每次都要从头开始学习如何做到这一点。
答案 0 :(得分:8)
答案 1 :(得分:5)
答案 2 :(得分:1)
虽然这可能不需要说......
一般情况下,通过帮助编译器(我使用GCC作为示例,你会更进一步,但这也应该与其他编译器相关):
(x>>8)&0xFF
或(x&0xFF00)>>8
?这是PPC上的一条指令,但编译器可能会使用两条指令。如果你能比一个体面的C编译器加速超过20%,我会感到惊讶,除非有编译器没有使用的特定指令/功能。除非你的所有应用都是如此,否则20%很少值得写回家。
答案 3 :(得分:1)
Agner Fog的网站似乎是一个常见的回应。我发现多年来特别有用的另一页是Paul Hsieh的页面......
答案 4 :(得分:0)
我同意以前的答案,建议Agner Fog的优化手册。他们真的很棒。
此外,英特尔和AMD还提供一些免费提供的优化手册,例如:您可能会对以下内容感兴趣:
Intel 64 and IA-32 Architectures Optimization Reference Manual