Benchmarks for Intel C++ compiler and GCC(英特尔C++编译器和GCC的基准测试)
问题描述
我有一个运行CentOS 5的AMD皓龙服务器。我想有一个相当大的基于C++Boost的程序的编译器。我应该选择哪个编译器?
推荐答案
我希望这不仅仅是帮助而不是伤害:)
一年多前的某个时候,我做了一次小小的编译器枪战,我快记不住了。
- GCC 4.2(苹果)
- 英特尔10
- GCC 4.2(苹果)+LLVM
我测试了我编写的多个模板密集型音频信号处理程序。
编译时间:到目前为止,英特尔编译器是最慢的编译器--另一篇帖子引用的数据显示,英特尔编译器的速度要慢2倍以上。
与英特尔相比,GCC处理深度模板非常出色。
英特尔编译器生成了巨大的目标文件。
GCC+LLVM生成的二进制代码最小。
生成的代码可能会因程序的构造以及可能使用SIMD的位置而有显著差异。
对于我的编写方式,我发现GCC+LLVM生成的代码最好。对于我在认真对待优化之前编写的程序(就像我写的那样),英特尔通常更好。
英特尔的结果各不相同;它对一些程序的处理要好得多,而对一些程序的处理要差得多。它很好地处理了原始处理,但我认为GCC+llvm是最好的,因为当放在一个更大的(正常)程序的上下文中时……它做得更好。英特尔赢得了开箱即用的巨大数据集的数字处理。
GCC单独生成的代码最慢,尽管它可以通过测量和纳米优化来达到同样的速度。我更倾向于避免这些,因为可以说,随着下一个编译器发行版的发布,风向可能会改变。
我从未在此测试中测量过写得很差的程序(即结果优于流行性能库的发行版)。
最后,这些程序是经过几年编写的,当时使用的是GCC作为主要编译器。
更新:我还启用了Core2Duo的优化/扩展。这些程序足够干净,可以启用严格的别名。
这篇关于英特尔C++编译器和GCC的基准测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:英特尔C++编译器和GCC的基准测试
基础教程推荐
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01