C/C++编译器反馈优化

2024-02-20

有没有人看到过不同程序的真实世界数字,这些程序使用 C/C++ 编译器提供的反馈优化来支持分支预测、缓存预加载功能等。

我搜索了它,令人惊讶的是,即使是流行的解释器开发小组似乎也没有检查过效果。将 ruby​​、python、php 等性能提高 10% 左右应该被认为是有用的。

真的没有任何好处,还是整个开发者社区都懒得使用它?


10% 是一个不错的数字。也就是说,...

你必须真正关心性能才能走这条路。我从事的产品 (DB2) 使用 PGO 和其他侵入式和攻击性优化。其中的成本包括大量的构建时间(在某些平台上是三倍)以及开发和支持的噩梦。

当出现问题时,将优化代码中的故障位置映射回源头可能并不简单。开发人员通常不会期望不同模块中的函数最终可以合并和内联,这可能会产生“有趣”的效果。

很难追踪的指针别名问题通常也会出现在此类优化中。您还可以享受非确定性构建的额外乐趣(别名问题可能会出现在周一的构建中,直到周四才会再次消失,...)。

在这些积极的优化下,正确或不正确的编译器行为之间的界限也变得相当模糊。即使我们有内部编译器人员(字面意思),优化问题(无论是在我们的源代码还是编译器中)仍然不容易理解和解决。

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

C/C++编译器反馈优化 的相关文章

随机推荐

  • 如何连接QLineEdit focusOutEvent

    我设计了一个带有QLineEdit在 PyQt4 中 在 Designer 的帮助下 我转换了 ui to py using pyuic4 我创建了另一个 py文件并导入和子类化Ui Class 我想执行一些任务QLineEdit失去焦点
  • 使用 IValueConverter 进行动态样式绑定

    我正在尝试设置一种样式 该样式在App xaml 在加载用户控件时动态地加载 并且只是由于某种原因不应用样式 即没有发生错误 只是不应用样式 我确信这是因为我定义了错误的绑定 但我无法弄清楚我需要做什么不同才能让它工作 App xaml 样
  • IText 编辑或删除 PDF 上的图层

    H All 我正在使用 IText 在 PDF 上添加文本图层 现在我想编辑PDF上的现有图层 图层也是仅由IText创建的 看来 IText 没有这样的方法支持 我想到的另一种方法是删除现有图层并在其位置上放置新图层 看来 IText 也
  • bash 迄今为止的字符串

    bash 中是否有机会将字符串转换为日期 例如 我有一个时间格式 Y m dS H M S 此类字符串的一个示例是 2009 06 24S12 34 56 我需要在 bash 中将此字符串转换为日期 unix 时间戳 我怎样才能做到这一点
  • html中的自动完成css类在vs代码中不起作用

    html 中 css 类名称的自动补全功能停止工作 我尝试了很多扩展 但没有任何效果 HTML 中 CSS 类名称的 IntelliSense HTML CSS 支持 另外 基尔是我的settings json workbench colo
  • Angular 2 Form 异步验证 ajax 在每次按键时调用

    我正在玩 Angular 2 表单异步验证 一切都工作正常 但后来我意识到在输入字段内的每个按键上都会对服务器进行 ajax 调用 这对服务器不利 我尝试了很多方法但没有任何效果 所以请帮助我如何处理这个问题 form FormGroup
  • 循环类似命名的 UI 元素 - 也许通过从其名称获取变量?

    我使用 Interface Builder 向视图添加了许多标签 我还有一个要显示的值数组 有没有比使用此代码更好的方法来设置标签 lblTotal1 text NSString stringWithFormat i Seconds int
  • MongoDB - 去除字段中的非数字字符

    我有一个电话号码字段 其中使用了各种随机分隔符 例如 932 555 1515 951 555 1255 952 555 1414 我想遍历已经存在的每个字段并删除非数字字符 那可能吗 无论它是存储为整数还是数字字符串 我都不在乎 它将仅用
  • 从用户输入中读取数学表达式

    我需要能够读取用户输入并将其分解以供以后使用 用户可以输入整数或小数和运算 但我不知道如何读取它 用户输入的示例是4 8 3 12 or 3 2 3 or 12 16 4 or 2 3 64 96 现在我正在使用这样的东西 public c
  • 在 Android AudioTrack 中使用缓冲区

    我试图弄清楚如何使用缓冲区音轨 http developer android com reference android media AudioTrack html有效地传输音乐 我知道您可以使用以下命令对音频进行排队write http
  • Mercurial - 比较本地和远程存储库?

    在Git中 有这样的命令 git remote show
  • 从数据集中完全删除一行

    我的网格视图上有一个删除按钮 单击删除按钮时 该行应该是 完全从会话中删除 我目前正在做以下事情 protected void gvMainLog RowCommand Object sender GridViewCommandEventA
  • MESI协议中的L3$角色是什么

    我想了解intel Broadwell中MESI的更多细节 假设一个cpu插槽有6个核心 core 0 到 core 5 他们每个人都有自己的 L1 和 L2 并共享 L3 共享内存中有一个var X x位于cache line 称为 XC
  • C `clock()` 函数只返回一个零

    The C clock 函数只返回一个零 我尝试使用不同的类型 但没有任何改进 这是一种高精度测量时间的好方法吗 include
  • 正则表达式:匹配第一个下划线之前的所有内容以及之后的所有内容

    我有这样的表情 test abc HelloWorld there could be more here 我想要一个采用第一个单词的正则表达式before第一个下划线 所以得到 test I tried A Za z 1 但这没有用 然后我
  • 如何全局安装ESlint?

    我正在尝试安装 ESlint 以将其与 Sublime Text 2 一起用于我的所有本地项目 配置文档 https eslint org docs user guide getting started global installatio
  • 重写泛型类的方法时发生名称冲突

    我试图理解使用以下代码得到的名称冲突错误 import java util import javax swing class Foo
  • 删除截断行末尾的字形

    当在启用了截断行的终端中使用 Emacs 23 时 Emacs 会在每行末尾添加一个美元符号 指示文本继续超出屏幕边缘 这让我很困扰 我想禁用此功能或以某种方式隐藏美元符号 这可能吗 如果是的话会怎样做 尝试用这个 set display
  • 2D 基本运动 UNITY

    目前我的角色在键盘上完美运行 但是当我通过 3 个 UI 按钮将你的动作转换为触摸时 我也尝试过 UI 图像 但成功了 我没有成功 它基本上是向右 向左 跳跃 应该如何做才能使其遵循以下说明 当用户按下方向键时 角色不会停止行走 直到用户释
  • C/C++编译器反馈优化

    有没有人看到过不同程序的真实世界数字 这些程序使用 C C 编译器提供的反馈优化来支持分支预测 缓存预加载功能等 我搜索了它 令人惊讶的是 即使是流行的解释器开发小组似乎也没有检查过效果 将 ruby python php 等性能提高 10