我想了解更多关于低级别代码优化的内容,以及如何利用底层机器架构。我正在寻找有关此主题的好指导。
更多细节:
我对在低级语言(如C/C++)中进行科学计算(这是很多数字运算,但不仅仅如此)优化感兴趣。我特别感兴趣的是那些除非了解机器工作原理,否则不明显的优化方法(我还没有这个理解)。
例如,一个更好的算法比机器上运行时的任何信息都要快。如果一个人按列而不是按行循环遍历矩阵,这并不明显。(最好遍历矩阵,以便连续读取存储在相邻位置的元素。)
关于这个主题的基本建议或指向相关文章的链接都非常欢迎。
答案:
收到了很多很棒的指针,比我有时间阅读的还多。以下是所有指针的列表:
- Intel的软件优化食谱 (书)
- 每个程序员都应该知道的有关内存的内容 (pdf 书)
- 撰写出色的代码,第2卷:低级思考,高级编码 (书)
- Agner Fog 的软件优化资源 (五本详细的 pdf 手册)
我需要一点时间浏览一下,以决定使用哪一个(没有时间阅读所有内容)。