2013-01-14 104 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生成時間等。