【问题标题】:C++ visual studio inlineC++ 视觉工作室内联
【发布时间】:2010-09-12 13:20:04
【问题描述】:

Visual Studio(我正在使用2008 SP1)中构建项目时,有一个优化选项 叫Enable link-time code generation。据我了解,这允许使用特定的内联技术,这听起来很酷。

不过,使用此选项会显着增加构建的静态库的大小。在我的情况下,它类似于40 mb -> 250 mb,如果你有 5-6 个那么大的库,显然构建过程会变得非常缓慢。

所以我的问题是 - 值得吗?。链接时代码生成的影响是否可测量,以至于我将其打开并遭受构建缓慢的困扰?

谢谢。

【问题讨论】:

    标签: c++ visual-studio linker


    【解决方案1】:

    我们应该怎么知道?您是链接时间较慢的人。 如果您可以忍受较慢的构建,那么它会加快您的代码速度,这很好。

    如果你想要更快的构建,你会失去优化,让你的代码运行得更慢。

    值得吗?这取决于 而不是别的。你有多耐心?您可以等待构建多长时间?

    不过,它可以显着加快您的代码速度。如果你需要速度,这是一个非常有价值的优化。

    【讨论】:

    • 嗯,我实际上是在寻求某个人(可能有人 :) 分析过的人的答案,如果链接时代码生成实际上在例如 99% 的情况下没有性能影响,为什么不干脆把它关掉呢?
    • @HardCoder1996:一件非常简单的事情,在开发期间,在调试中编译(无优化),在自动化测试和交付期间,使用完全优化进行编译。通过这种方式,您可以快速编译以进行开发,并为您的客户提供快速二进制文件。
    【解决方案2】:

    这取决于你。这是一个比较主观的问题。这里有一些事情可以帮助您做出决定:

    1. 使用和不使用此功能对性能进行基准测试。有时较小的代码运行得更快,有时更多的内联工作。它并不总是那么清晰和干燥。
    2. 性能很关键吗?除非您找到改进这方面的方法,否则您的客户会以目前的速度拒绝您的申请吗?
    3. 在构建过程中可以接受多慢?您是否必须在您自己构建它时保持它开启,或者您可以将它推到测试环境/持续构建机器上吗?

    就个人而言,我会选择任何有助于我更快发展的东西,然后再担心以后的优化。确保它先完成它需要做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多