我想知道visual studio如何处理编译分解为子项目的解决方案,与只有一个项目的解决方案(具有相同数量的类,例如200个类)相比。哪个编译得更快(或两者都相同)?
答案 0 :(得分:1)
我认为通过编译解决方案将其拆分为子项目会更快。如果您没有更改其他项目之一,则可以使用已编译的未更改子项目的dll。 如果所有类都位于一个项目中,则每次构建时都必须编译整个项目......
但在我看来,比建筑速度更重要的是将解决方案分解为子项目的架构优势。如果您有多个组件可用作独立程序或另一个解决方案中的库,则拆分项目完全有意义。这将是我将解决方案分解为子项目的方法!编译速度只是一个积极的副作用。
查看此链接以优化建筑速度:http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/17/speed-up-visual-studio-builds.aspx
在多个项目中拆分解决方案的另一个优势:编译器能够并行编译 - 即使这些项目之间存在某些依赖关系。所以总而言之,它会更快,我会说。
答案 1 :(得分:0)
一般难以回答 - 这取决于很多因素,包括VS版本。预编译的标头可能会也可能不会被共享;整个程序优化实际上是整个链接单元优化;链接DLL在运行时发生,因此不计入Visual Studio构建时间等。