英特尔C++编译器和GCC的基准测试

Benchmarks for Intel C++ compiler and GCC(英特尔C++编译器和GCC的基准测试)
本文介绍了英特尔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的基准测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Unknown type name __m256 - Intel intrinsics for AVX not recognized?(未知类型名称__M256-英特尔AVX内部功能无法识别?)
How can an declare an array in a function that returns an array in c++(如何在用C++返回数组的函数中声明数组)
Is it possible to define a class in 2 or more file in C++?(在C++中可以在两个或多个文件中定义一个类吗?)
Why can#39;t I create an array of automatic variables?(为什么我不能创建一个自动变量数组?)
zeromq: reset REQ/REP socket state(Zeromq:重置REQ/REP套接字状态)
Can I resize a vector that was moved from?(我可以调整从中移出的矢量的大小吗?)