首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建配置文件?

如何创建配置文件?
EN

Stack Overflow用户
提问于 2012-07-27 18:02:57
回答 2查看 145关注 0票数 1

我正在开发一个大型的(~1MLOC)C++应用程序,它从源代码构建花费了太长的时间(在windows上使用Visual Studio,在mac上使用Makefile或XCode)。我想知道从哪里开始优化(例如预编译头、转发声明等)。

与应用程序本身的性能一样,我想在开始优化之前分析一下构建过程。

有哪些工具可以支持这一点?

EN

回答 2

Stack Overflow用户

发布于 2012-07-27 18:22:09

首先,请准确说明您使用的是哪个版本的Visual Studio。如果可能,请升级到VS2010,因为它对并行构建的支持要好得多。下面是需要考虑的几件事:

  • 将源代码树放在与系统盘不同的磁盘上。如果您可以扩展到2个SSD (1个用于系统,1个用于源代码),那么这将构成一个巨大的difference
  • Enable并行构建。在VS2010中,这使我们为一个与您的项目规模相同的项目缩短了一半的构建时间。启用“多处理器编译”开关(/MP)。你可能会发现,如果你的一个或两个项目有奇怪的依赖关系,你可能需要关闭它,但只要对大多数项目启用它,你就会得到巨大的提升。
  • VS2010有详细的构建时间记录选项,可以帮助你隔离在不同项目中花费的时间。VS2005/2008有一个构建计时选项
  • ,如果你有VS2005或VS2008,那么试试MPCL插件(它不是免费的,但非常便宜),它将比VS本身做得更好。如果你有预算,有像Incredibuild
  • If这样的工具,你可以使用Makefiles,然后使用-j标志进行并行化。如果你正在使用Xcode,那么你可以使用分布式构建,如果你有其他的macs可用的话(虽然我自己在这方面从来没有任何幸运),
  • 你可以考虑使用ccache和gcc,
  • 为所有或大多数项目启用预编译头文件。这可能需要一些实验来计算出你得到了多少好处--你投入的越多,回报递减的速度就越快(你投入的越多,你需要做的重建就越多)
  • 阅读了John Lakos关于Large Scale C++ Design的书,这是一个很棒的建议来源,可以帮助你将大型项目拆分成两个阶段的构建过程。如果您有很多第三方库需要构建,或者其他库不经常更改,那么可以为它们设置一个单独的项目。尝试将其与主项目并行构建,或者保存二进制文件。考虑将二进制文件签入到您的源代码控制系统中(是的,我知道将二进制文件签入SCM通常被认为是邪恶的,但我相信您必须实用一些)
票数 2
EN

Stack Overflow用户

发布于 2012-07-27 18:14:08

有许多方法可以改进构建时间。其中之一当然是更多的硬件,即更快的磁盘和更多的RAM。另一个是编译器的特性,比如预编译头。还有一些外部工具可以提供帮助,比如distccccache。对于GNU make,还有-j选项可以并行运行多个make进程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11685591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档