2010-09-12 87 views
3

当在Visual Studio(我使用2008 SP1)构建项目时,有一个优化选项 称为Enable link-time code generation。据我所知,这允许使用特定的内联技术,这听起来很酷。C++ visual studio inline

不过,使用此选项显着增加内置静态库的大小。在我的情况下,它是类似于40 mb -> 250 mb,并且,如果您甚至有5-6个巨大的库,构建过程显然会变得非常慢。

所以我的问题是 - 值得吗?。链接时代码生成的效果是否可测量,以便让我打开它,并忍受sloooooooooooooow构建?

谢谢。

回答

2

我们该怎么知道?你是遭受较慢链接时间的人。 如果你可以忍受较慢的版本,那么它会加快你的代码,这是很好的。

如果你想更快的构建,你失去了优化,使您的代码运行速度较慢。

它值得吗?这取决于你,没有别的。你有多耐心?你能等多长时间?

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

+0

好吧,我其实寻求从别人的答案谁(可能是,有一个人:)异形如果链接时代码生成实际上在,例如,99%的情况下,任何性能影响,何不干脆把它关闭? – 2010-09-12 13:26:54

+0

好了,最后一句是什么,我寻找.... – 2010-09-12 13:27:28

+0

@ HardCoder1996:一个很简单的事情,在开发过程中,编译调试(无优化),并在自动化测试和交付,充分优化编译。通过这种方式,您可以为客户快速编译开发和快速二进制文件。 – 2010-09-12 14:12:52

2

这取决于你。这是一个相当主观的问题。这里有几件事可以帮助你做出决定:

  1. 基准性能有和没有这个功能。有时候更小的代码运行得更快,有时更多的内联工作。它并不总是如此清晰和干燥。
  2. 性能至关重要吗?您的客户是否会以目前的速度拒绝您的应用程序,除非您找到了改善这方面问题的方法?
  3. 构建过程中可接受的速度有多慢?当你自己构建它时,你是否必须保持这种状态?还是可以将它推到测试环境/连续构建机器上?

就个人而言,我会尽力帮助我更快地开发,然后再担心优化。确保它完成了它首先需要做的事情。