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

2023-12-27

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


我希望这有助于多于伤害:)

一年多前的某个时候,我进行了一次编译器大战,现在我已经记不清了。

  1. GCC 4.2(苹果)
  2. Intel 10
  3. GCC 4.2(苹果)+ LLVM

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

编译时间:英特尔编译器是迄今为止最慢的编译器 - 正如另一篇文章所引用的那样,“慢了 2 倍多”。

与 Intel 相比,GCC 处理深度模板的效果非常好。

Intel编译器生成的huge对象文件。

GCC+LLVM 产生最小的二进制文件。

由于程序的构造以及可以使用 SIMD 的位置,生成的代码可能会存在显着差异。

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

英特尔的结果各不相同;它对某些程序的处理要好得多,而对某些程序的处理要差得多。它很好地处理了原始处理,但我给了 GCC+LLVM 蛋糕,因为当放入更大(正常)程序的上下文中时......它做得更好。

英特尔凭借开箱即用、对海量数据集进行数字处理而获胜。

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

我从未在此测试中测量过编写不佳的程序(即结果优于流行性能库的分布)。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

英特尔 C++ 编译器和 GCC 的基准测试 的相关文章

  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的

随机推荐

  • 使用 Oracle、PHP 和 Oci8 处理尖锐字符和其他特殊字符

    您好 我正在尝试将名称存储到 Oracle 数据库中并使用 PHP 和 oci8 取回它们 但是 如果我插入 直接进入 Oracle 数据库并使用 oci8 将其取回 我刚刚收到e 我是否必须对所有特殊字符 包括 转换为 html 实体 即
  • 返回路径相关类型

    如何设计返回路径相关类型的方法 在下面的例子中 我故意想要Vertex路径依赖于Tree这样就禁止跨树混合顶点 这只是一个例子 trait Tree trait Vertex def root Vertex def addChild par
  • 当项目更改时对嵌套列表中的值求和

    我有一些问题困扰了我的 python 初学者知识 我希望有人能指出我正确的方向 我生成了一个嵌套列表 每个嵌套列表由两个 对不起 我的错 值组成 例如 1 0 1 2 2 9 3 0 3 8 3 1 第一个值始终指定一天 第二个值始终是我实
  • Datatables Ajax 在从文件读取 JSON 时有效,但不能从变量读取 JSON (Django)

    我已经被这个问题困扰了几天了 我正在尝试将 JSON 数据提供给 DataTables 但只有当我使用静态文件作为源时它才有效 请参见下面的 index html 索引 html document ready function mydata
  • 如何暂停kafka消费者?

    我在我的框架中使用 Kafka 生产者 消费者模型 消费者端消费的记录随后被索引到elasticsearch上 这里我有一个用例 如果 ES 关闭 我将不得不暂停 kafka 消费者 直到 ES 启动 一旦启动 我需要恢复消费者并使用我上次
  • 无法在 macports 上安装 apt

    出现以下错误 info build Compiling contrib hashes cc to opt local var macports build opt local var macports sources rsync macpo
  • 分组依据并添加列

    我有一个名为 ward councilors 的表和两列 ward 和 councillor 该表包含所有议员及其负责的选区的列表 每个选区有三名议员 我需要做的是分组 以便每个选区有一个不同的记录和三个新列 每个列由三名议员负责该选区 例
  • 一次多个 Google Vision OCR 请求?

    根据谷歌视觉文档 http 20https cloud google com vision docs reference rest v1 images annotate 每个请求的最大图像文件数为 16 别处 https cloud goo
  • 如何在 Kotlin 中将 vararg 与不同的泛型一起使用?

    我想将 vararg 与每个参数具有不同类型的泛型一起使用 我已经尝试过的 class GeneralSpecification
  • 将之前添加的视图置于前面

    我的问题如下 我有一个视图 并向该视图添加 3 个子视图 view1 view2 view3 以该顺序 观点略有重叠 我想将第一个视图带到顶部 但我无法让它工作 我尝试添加视图insertSubview atIndex 和给予view1更大
  • 为什么共享库路径被硬编码在可执行文件中?

    最近我得到了一个测试二进制文件 当我使用 objdump 检查它时 我发现它包含硬编码的库路径 为什么需要像这样硬编码路径 路径不应该从 SHELL 环境变量或 L 参数中获取吗 objdump p 测试程序 输出包括共享库的硬编码路径 N
  • 创建名称为“org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration”的bean时出错

    我在 Eclipse 中创建了一个 Spring Maven 项目 然后我把它放在svn下的服务器上 然后我使用 import gt maven project 等再次将其导入到 Eclipse 中 我现在的App java应用程序包含以下
  • NASM 模块将十六进制转换为字符串并打印出来。已组装但未按预期工作

    我正在尝试编写一个简单的汇编代码以将十六进制值输出到屏幕上 有两个文件print screen asm它正在与其他模块一起工作 我认为问题出在我尝试将十六进制转换为字符串时的逻辑中 我的代码是 org 0x7c00 xor dx dx xo
  • 在android中提出Intent的成本

    广播需要多少性能成本intents https developer android com reference android content Intent 每秒广播多个可以吗 或者意图是否昂贵 Intent 旨在在 Android 操作系
  • Firefox 背景图像水平居中奇怪

    我正在为 CMS 构建一些基本的 HTML 代码 CMS 中与页面相关的选项之一是 背景图像 和 将页面宽度 高度拉伸到背景图像宽度 高度 这样 对于大的背景图像 整个事物就变得可见 我当前的屏幕分辨率是 1280 x 1024 如果我执行
  • Jenkins pipeline并行阶段中,如果一个阶段失败,如何及时杀死其他阶段?

    如果工作失败 我不必等待每个人都完成 是否可以中止仍在运行的并行阶段 它们必须显示为 已中止 而不是带有红十字图标 因为失败的必须突出显示 Add parallelsAlwaysFailFast给你的options 如果任何 并行 阶段失败
  • console.time() 在 Node.js 中安全吗?

    我面前有一小段 Node js 代码 如下所示 console time queryTime doAsyncIOBoundThing function err results console timeEnd queryTime Proces
  • 铁轨上的Python?

    是否可以将 Ruby on Rails 代码库转换为 Python 我认为很多人比 Ruby 更喜欢 Python 但发现 Ruby on Rails 的功能 整体上 比 Python Web 框架中的功能更好 那么 这可能吗 或者 Rub
  • 是否有任何基于abs值的ceil()函数,例如trunc与floor或从零舍入函数?

    numpy trunc是基于abs值的下取整函数 a np array 1 7 1 5 0 2 0 2 1 5 1 7 2 0 np floor a Out 122 array 2 2 1 0 1 1 2 np trunc a Out 12
  • 英特尔 C++ 编译器和 GCC 的基准测试

    我有一台运行 CentOS 5 的 AMD Opteron 服务器 我想要一个编译器 用于相当大的基于 C Boost 的程序 我应该选择哪个编译器 我希望这有助于多于伤害 一年多前的某个时候 我进行了一次编译器大战 现在我已经记不清了 G