编写内联汇编而不是常规c/c ++代码要快多少?

wan*_*rer 0 c c++ assembly

我的一位资深同事通过编写内联汇编来优化函数(他正在实现图像过滤).这真的有必要吗?现代编译器不会为我们这样做吗?通常,通过将C代码转换为汇编代码,我们获得了多少收益?如果汇编代码确实带来了很多好处,那么我们何时应该将C/C++代码转换为汇编代码,何时应该保留代码,因为汇编代码很难读取和维护.

SLa*_*aks 7

如果您比编译器更聪明,您可以通过手动编写程序集在一个特定平台上更快地编写代码.

但是,大多数大型C/C++编译器都是非常好的优化器; 你不可能比他们聪明.

  • 我甚至会说,如果你问这个特定的问题(即:在汇编而不是C/C++中编写_any_例程),那么你比编译器还要聪明.比编译器更聪明的人已经知道他们应该在汇编中编写哪些例程. (4认同)
  • "但是,大多数大型C/C++编译器都是非常好的优化器" - GCC和ICC的开发人员在那里哭了. (3认同)
  • @Nicol:是的,但他问他的同事为什么选择使用内联汇编程序. (2认同)