And*_*rei 3 c compiler-construction performance gcc
我在使用gccC语言进行数学软件开发时使用标准编译器.我不太了解编译器或编译器选项,我只是想知道,是否有可能使用其他编译器或选择更好的选项来制作更快的可执行文件?默认的Makefile设置选项-ffast-math,-O3我认为它们都会对整个计算时间产生一些影响.我的软件使用内存非常广泛,所以我想一些与内存管理相关的选项可能会有用吗?
有任何想法吗?
不同的编译器或随机的,任意的微的优化试验之前,你真的需要得到一个体面的探查和配置文件的代码,以找出性能瓶颈是什么.实际情况可能与您的想象非常不同.获得配置文件后,您可以开始考虑可能有用的优化.例如,如果受内存带宽的限制,更改编译器将无法帮助您.
以下是关于gcc性能的一些提示:使用-Os,-O2和-O3进行基准测试.有时-O2会更快,因为它会缩短代码.既然你说你使用了大量内存,那么也尝试使用-Os并进行测量.
另请查看-march = native选项(如果您在客户端计算机上为具有类似处理器的计算机生成可执行文件,则认为它是安全的).有时它会对性能产生相当大的影响.如果你需要列出gcc与native一起使用的选项,这里是如何做到的:创建
一个名为test.c的小型C程序,然后
$ touch test.c
$ gcc -march=native -fverbose-asm -S test.c
$ cat test.s
Run Code Online (Sandbox Code Playgroud)
代码转到Gentoo论坛用户的信用.它应该打印出gcc使用的所有优化的列表.请注意,如果您使用的是i7,gcc 4.5会将其检测为Atom,因此您需要手动设置-march和-mtune.
另请阅读本文档,它将对您有帮助(仍然,根据我对Gentoo的经验,-march =本地作品更好)http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html
您可以尝试使用4.4版本和4.5版本的新版本,例如-flto和-fwhole-program.这些应该有助于提高性能,但在试验它们时,我的系统不稳定.无论如何,请阅读本文档,它将帮助您了解GCC的一些优化选项http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |