2013-01-14 107 views
0

我想知道Visual Studio如何处理编译分解成子项目的解决方案,与只有一个项目的解决方案(具有相同数量的类,例如说200个类)相比。哪个编译速度会更快(或者它们都是相同的)?编译速度Visual Studio

+1

不是你的答案,而是SSD盘在这里解决的问题。之后它变得无关紧要。 – Steve

+0

编译通常是一个O(n)问题,所以没关系。从多次构建工具开始可能会产生什么样的开销是不可想象的,您的问题严重缺乏记录。 –

+0

只是想详细说明史蒂夫的答案。 Visual Studio在硬盘使用上非常沉重。 SSD具有令人难以置信的性能提升。 –

回答

1

我认为通过将解决方案拆分uf编译为子项目会更快。如果您没有更改其他项目之一,则可以使用未更改的子项目的已编译的dll。 如果所有的课程都位于一个项目中,则必须在每次构建时编译整个项目...

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

退房此链接优化建设速度快:http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/17/speed-up-visual-studio-builds.aspx

一个好处,你在分割在几个项目的解决方案有:编译器能够并行编译 - 即使有这些项目之间的一些依赖。总之,它会更快,我会说。

+0

你确定吗,这就是我猜测的,但不想猜测。 – DermFrench

+0

我更新了我的解决方案 – stromflut

+0

我只对编译速度感兴趣,我已经知道应该将解决方案分解为架构原因,我只是在检查这样做是否会降低性能。 – DermFrench

0

一般难以回答 - 取决于很多因素,包括VS版本。预编译头文件可能会或可能不会被共享;整个程序优化实际上是全链接单元优化;链接DLL在运行时发生,因此不计入Visual Studio生成时间等。