Visual studio 编译速度Visual Studio

Visual studio 编译速度Visual Studio,visual-studio,compilation,Visual Studio,Compilation,我想知道VisualStudio是如何处理一个分解成子项目的解决方案,而不是一个只有一个项目的解决方案(类的数量相同,例如200个类)。哪个编译速度更快(或者两者都是相同的)?一般来说很难回答-这取决于许多因素,包括VS版本。预编译头可能共享,也可能不共享;全程序优化实际上是全环节单元优化;链接DLL发生在运行时,因此不计入Visual Studio构建时间等。我认为将解决方案分解为子项目会更快。如果您没有更改其他项目之一,它可以使用未更改子项目的已编译dll。 如果所有类都位于一个项目中,那么

我想知道VisualStudio是如何处理一个分解成子项目的解决方案,而不是一个只有一个项目的解决方案(类的数量相同,例如200个类)。哪个编译速度更快(或者两者都是相同的)?

一般来说很难回答-这取决于许多因素,包括VS版本。预编译头可能共享,也可能不共享;全程序优化实际上是全环节单元优化;链接DLL发生在运行时,因此不计入Visual Studio构建时间等。

我认为将解决方案分解为子项目会更快。如果您没有更改其他项目之一,它可以使用未更改子项目的已编译dll。 如果所有类都位于一个项目中,那么每次构建时都必须编译整个项目

但在我看来,比构建速度更重要的是将解决方案拆分为子项目的架构优势。如果您有几个组件可以用作独立程序或另一个解决方案中的库,那么拆分项目是完全有意义的。这将是我将解决方案拆分为子项目的方法!编译速度只是一个积极的副作用

查看此链接以优化构建速度:


将解决方案拆分为多个项目还有一个好处:编译器能够并行编译,即使这些项目之间存在一些依赖关系。所以总的来说它会更快,我想说。

不是你的答案,而是通过SSD磁盘解决了这个问题。编译通常是一个O(n)问题,所以它不重要。多次启动构建工具会给您带来什么样的开销是不可能的,您的问题没有得到充分的记录。我只是想详细说明一下Steve的答案。VisualStudio的硬盘使用量非常大。有了SSD,性能得到了难以置信的提升。我的所有开发人员都有SSD。我也有编译速度慢的问题(单个项目大约20秒)。我通过1)禁用大多数C/C++->优化设置2)将大量.C/.cpp文件编译成.lib导出(dll)来解决这个问题;静态链接libs要慢得多。仅此一项就将编译时间缩短到了~4秒。你确定这一点吗?这就是我猜测的,但我不想猜测。我只对编译速度感兴趣,我已经知道解决方案应该因架构原因而拆分,我只是在检查这样做不会降低性能。又增加了一个改进:并行编译项目!我喜欢链接中RAM磁盘的想法。