如何编写快速(低级)代码?

Sza*_*lcs 29 c c++ optimization performance numerical

我想更多地了解低级代码优化,以及如何利用底层机器架构.我正在寻找关于在哪里阅读有关此主题的好指示.

更多细节:

我感兴趣的是在C/C++等低级语言中进行科学计算(大量数字处理,但不仅仅是)的优化.我特别感兴趣的是那些不明显的优化方法,除非人们对机器的工作原理有很好的了解(我还没有).

例如,很明显,更好的算法更快,而不知道它运行的机器的任何信息.如果首先在矩阵的行或行中循环,那么这一点并不明显.(最好循环遍历矩阵,以便连续读取存储在相邻位置的元素.)

关于该主题的基本建议或文章指针是最受欢迎的.

答案

得到了许多伟大指针的答案,比我有时间阅读的要多得多.这是所有这些的列表:

我需要一点时间来决定使用哪一个(没有时间).

caf*_*caf 17

Drepper的每个程序员应该了解的内存[pdf]是对低级优化的一个方面的一个很好的参考.


Rem*_*anu 12

对于英特尔架构而言,这是无价之宝:软件优化手册,第二版


cel*_*ion 6

我阅读它已经有几年了,但是写出Great Code,第2卷:思考低级,由Randall Hyde 写高级别是非常好的.它给出了C/C++代码如何转换为汇编的很好的例子,例如当你有一个很大的switch陈述时真正发生的事情.

此外,altdevblogaday.com专注于游戏开发,但编程文章可能会给你一些想法.


mur*_*att 6

Hacker's Delight是一本关于位操作和处理低级别事物的聪明方法的有趣书籍.

对于对低级编码感兴趣的每个人来说,这绝对值得一读.