Jus*_*eel 1 c compiler-construction gcc compiler-optimization
为了迫使不被内联这是耗时运行时的46%的功能,我用__attribute__((noinline))
的它,并编译的代码gcc -Wall -Winline -O2
(这些加-g
有什么使用的Makefile文件-我也看到了大致相同的效果使用时,-g
如好吧)使用gcc 4.5.2.我发现具有非内联功能的程序比原始程序快20%以上.有谁知道为什么会这样?
让我提供一些更多细节.发生这种情况的程序是Linux 的压缩实用程序bzip2的最新版本.程序中的关键功能(在compress.c中找到generateMTFValues)是执行Move To Front变换的功能.该功能仅由程序中的一个功能调用.
有没有人知道为什么程序在这种情况下运行得更快,因为强制编译器不要内联这个函数?该函数只接受一个参数 - 一个指向包含所有块和压缩信息的结构的指针.此外,它只调用另一个不会消耗任何实质处理时间的功能.
归档时间: |
|
查看次数: |
381 次 |
最近记录: |