C++ C++;visual studio内联

C++ C++;visual studio内联,c++,visual-studio,linker,C++,Visual Studio,Linker,在visualstudio中构建项目时(我使用的是2008sp1),有一个优化选项 调用启用链接时间代码生成。据我所知,这允许使用特定的内联技术,这听起来很酷 不过,使用此选项会显著增加所构建的静态库的大小。在我的例子中,它类似于40MB->250MB,显然,如果您有5-6个如此庞大的库,构建过程可能会变得非常缓慢 所以我的问题是-值得吗?。链接时间代码生成的效果是可测量的,以至于我让它处于打开状态并遭受缓慢构建的痛苦吗 谢谢。我们怎么知道?你是一个遭受较慢的链接时间。 如果您可以接受较慢的构建

visualstudio
中构建项目时(我使用的是
2008sp1
),有一个优化选项 调用
启用链接时间代码生成
。据我所知,这允许使用特定的内联技术,这听起来很酷

不过,使用此选项会显著增加所构建的静态库的大小。在我的例子中,它类似于
40MB->250MB
,显然,如果您有5-6个如此庞大的库,构建过程可能会变得非常缓慢

所以我的问题是-值得吗?。链接时间代码生成的效果是可测量的,以至于我让它处于打开状态并遭受缓慢构建的痛苦吗


谢谢。

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

如果您想要更快的构建,您将失去优化,从而使代码运行速度变慢

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


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

由您决定。这是一个相当主观的问题。这里有一些事情可以帮助你做出决定:

  • 测试有无此功能的性能。有时较小的代码运行得更快,有时更多的内联工作。它并不总是那么干净利落
  • 性能是否至关重要?你的客户会以当前的速度拒绝你的应用程序吗?除非你找到一种改进的方法
  • 在构建过程中有多慢是可以接受的?您是否必须在自己构建它时保持此状态,或者是否可以将其推到测试环境/连续构建机器上

  • 就我个人而言,我会选择帮助我更快开发的东西,然后再担心以后的优化。确保它首先做它需要做的事情。

    好吧,我实际上是在寻求一个被剖析的人(可能有人:)的答案,如果链接时间代码生成实际上在99%的情况下对性能没有影响,为什么不干脆关闭它?@HardCoder1996:一件非常简单的事情,在开发过程中,在调试中编译(无优化),在自动测试和交付期间,使用完全优化进行编译。这样,您就有了用于开发的快速编译器和用于客户端的快速二进制文件。