【问题标题】:What is the difference between /GL and /LTCG in Visual StudioVisual Studio 中的 /GL 和 /LTCG 有什么区别
【发布时间】:2016-02-18 02:25:51
【问题描述】:

我尝试在网上寻找差异,但找不到很多。这两个选项听起来彼此相关:

/LTCG:https://msdn.microsoft.com/en-us/library/xbf3tbeh.aspx

/LTCG 选项告诉链接器调用编译器并执行整个程序优化。

/GL:https://msdn.microsoft.com/en-us/library/0zza0de8.aspx

启用整个程序优化。

有人知道具体的区别吗?

【问题讨论】:

  • 您提供的第一个链接中的文档中值得注意的信息“/LTCG 隐含在 /GL 中。”
  • 同意,但这是否意味着 /GL 比 /LTCG 做得更多?
  • 您提供的第二个链接中的文档中值得注意的信息“如果您使用 /GL 和 /c 编译程序,您应该使用 /LTCG 链接器选项来创建输出文件。”
  • 我不是这方面的专家,否则我会留下答案;我只是快速浏览了文档。
  • 看起来关键是“/GL 还提供配置文件引导优化;请参阅 /LTCG。”

标签: c++ c visual-studio hyperlink


【解决方案1】:

/GL 是编译器选项,/LTCG 是链接器选项。根据文档,它们彼此密切相关。例如:

/LTCG 隐含在 /GL

但是,/LTCG 可以在不使用 /GL 的情况下使用。

/LTCG 选项告诉链接器调用编译器并执行整个程序优化。您还可以进行配置文件引导优化。

如何启用配置文件引导优化?通过使用/GL 选项。

/GL 还提供配置文件引导优化;见/LTCG

什么是配置文件引导优化?这是profile guided optimization documentation开头的sn-p:

配置文件引导优化可让您优化输出文件,其中优化器使用来自 .exe 或 .dll 文件的测试运行的数据。数据代表程序在生产环境中的执行情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2021-05-19
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多