我在C中听说过很多关于性能的事情; 与正常分配相比,转换速度慢,函数调用很慢,二进制操作比正常操作快得多,等等......
我确信其中一些内容是特定于架构的,编译器优化可能会产生巨大的差异,但我希望看到一个图表来大致了解我应该做什么以及我应该避免编写高性能程式.有这样的图表(或网站,书籍,任何东西)?
在我看来,你对这一切感到非常困惑.让我们来谈谈你拖累的一些神话.
与正常作业相比,施法速度较慢.
这真的取决于你的演员阵容.在不同的地址类型之间,没有; 因为你只是对同一个值应用不同的解释,所以实际上是免费的.数字类型的不同宽度之间的转换可能会慢一些(有时在赋值时隐式完成)但仍然非常快.
函数调用很慢.
并不是的.它们不是免费的,但是成本不够高,你应该避免使用它们,除非你有分析数据说不然.在没有充分理由的情况下永远不要优化,并证明它会有所帮助.(据我所知,我已经知道可以恢复未达到我想要的性能提升平衡的尝试优化.)
二进制操作比正常操作更快.
什么是"正常运作"?FWIW,另外是二进制操作.乘法也是如此.在现代硬件上,它们都非常快.让编译器担心这一点.重点是描述你正在做的事情,这一点更为重要.
现在,对于真正花费的东西:
留意那些; 他们是软件通常变慢的地方.并始终选择好的算法和数据结构.