2010-08-18 40 views
2

在我的公司,我們仍在使用Visual Studio 2005,但在Visual Studio 2010中窺視,希望它能加速我們開發週期的某些部分。目前我們對Visual Studio 2010的C++鏈接器的性能非常感興趣。構建我們的應用程序時,我們正在考慮40秒和2分鐘之間的鏈接時間,具體取決於機器配置(SSD vs HDD),以及如果東西已經在Windows的磁盤緩存中。我們使用VS2010鏈接器而不是VS2005鏈接器的簡單測試顯示出約25%的改善。我們希望看到更大的改進,因爲我們認爲鏈接器現在可以使用多個內核。適用於大型項目的Visual Studio 2010 C++鏈接器性能

這25%真的是我們切換到VS2010時應該期待的改進,還是有一些魔術鏈接器開關可以將鏈接時間縮短到可接受的水平?

+2

爲什麼微軟會添加一個魔術開關來讓程序更快,但是卻不能打開它? – JaredPar 2010-08-18 14:04:46

+1

因爲魔法開關可能在所有情況下都不起作用,所以它們默認保持關閉狀態。 – 2010-08-19 06:21:18

回答

6

我的理解是,MS對VS2010中的鏈接器做出的巨大改變(性能方面)是,編寫.pdb文件是在單獨的線程上完成的。當然,由於鏈接確實遠不止此,還有它會在多大程度上提高整個鏈路的時限:

而這裏的一篇文章,說明如何獲得一些更詳細的計時統計,如果你感興趣的是分析:

無論如何,只需投入一套新工具,速度提高25%似乎對我來說是一個不錯的結果。

3

減少25%的時間並不差。如果你想要更快的鏈接時間,嘗試動態鏈接DLL,而不是鏈接靜態庫。這通常更快。

+1

這就是我在開發過程中所做的。在開發過程中,我使用很多小DLL來構建我的應用程序,但是當我必須爲客戶製作一個可執行文件時,我將它鏈接到一個大的可執行文件中。 – Patrick 2010-08-18 14:43:58

相關問題