英特尔C++编译器和GCC的基准测试 [英] Benchmarks for Intel C++ compiler and GCC

查看:313
本文介绍了英特尔C++编译器和GCC的基准测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个运行CentOS 5的AMD皓龙服务器。我想有一个相当大的基于C++Boost的程序的编译器。我应该选择哪个编译器?

推荐答案

我希望这不仅仅是帮助而不是伤害:)

一年多前的某个时候,我做了一次小小的编译器枪战,我快记不住了。

  1. GCC 4.2(苹果)
  2. 英特尔10
  3. GCC 4.2(苹果)+LLVM

我测试了我编写的多个模板密集型音频信号处理程序。

编译时间:到目前为止,英特尔编译器是最慢的编译器--另一篇帖子引用的数据显示,英特尔编译器的速度要慢2倍以上。

与英特尔相比,GCC处理深度模板非常出色。

英特尔编译器生成了巨大的目标文件。

GCC+LLVM生成的二进制代码最小。

生成的代码可能会因程序的构造以及可能使用SIMD的位置而有显著差异。

对于我的编写方式,我发现GCC+LLVM生成的代码最好。对于我在认真对待优化之前编写的程序(就像我写的那样),英特尔通常更好。

英特尔的结果各不相同;它对一些程序的处理要好得多,而对一些程序的处理要差得多。它很好地处理了原始处理,但我认为GCC+llvm是最好的,因为当放在一个更大的(正常)程序的上下文中时……它做得更好。

英特尔赢得了开箱即用的巨大数据集的数字处理。

GCC单独生成的代码最慢,尽管它可以通过测量和纳米优化来达到同样的速度。我更倾向于避免这些,因为可以说,随着下一个编译器发行版的发布,风向可能会改变。

我从未在此测试中测量过写得很差的程序(即结果优于流行性能库的发行版)。

最后,这些程序是经过几年编写的,当时使用的是GCC作为主要编译器。

更新:我还启用了Core2Duo的优化/扩展。这些程序足够干净,可以启用严格的别名。

这篇关于英特尔C++编译器和GCC的基准测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆