2014-02-18 23 views
0

我有一個很奇怪的問題,我懷疑的最後一次希望是來自這個社區。CruiseControl在vmware工作站上的構建時間降低

我有一個編譯系統,它包含編譯一個明智的安裝程序包的三個不同的元素。我所看到的症狀是這些項目的構建時間在虛擬機上隨着時間的推移而逐漸降低。這種情況發生在多個虛擬機上,自2013年11月以來一直如此。幸運的是,我有一個克隆虛擬機的習慣,並在12月初克隆了機器,症狀處於早期階段。

例如,正常的編譯時間應該在48到50分鐘內完成。在我注意到時間降到1小時45分鐘的時候,時間慢慢退化。我通常不會監視系統的性能,而是構建的結果 - 所以我從來不知道。克隆的機器將恢復系統,使其在1小時12分鐘內建立。

分析構建時間,明智的安裝程序正在使用所有的時間。我試圖卸載並重新安裝應用程序。我清理了臨時目錄,運行chkdsk和其他正常的調試操作。

聰明的安裝程序項目之一是合併模塊,需要重新編譯,因爲它更新數據庫文件。這隻需要8分鐘的時間來編譯。它需要超過半小時。

任何人都可以想到我可以尋找什麼來診斷這個問題?什麼可能會降低系統的性能,因此在一個月的時間裏,明智的安裝程序編譯可能會在其編譯時間上最多鬆開45分鐘? Build Machine操作系統:XPsp3 HDD:SSD 其他版本可以在同一臺主機上運行,​​並且可以同時運行,但在2013年11月之前,這對性能沒有影響。

+0

您是否嘗試過從命令行運行構建任務?它在那裏同樣緩慢嗎? –

+0

對不起,很長時間沒有回覆。是的,Wise Installer版本與命令行同樣沒有響應,所以這不是'巡航控制問題'。問題是明智的安裝程序本身。 物理輸出文件在正常時間段內創建。然而,明智的安裝程序,每個進程掛起另外40分鐘。我有一個進程來構建一個合併模塊,另一個進程用於主設置。在這兩種情況下,Wise for Windows Installer都會精確掛起另外40分鐘。 此外,當打開IDE for Wise時,如果我觸摸Files視圖,應用程序將掛起。 –

回答

0

這個問題實際上與我們的visual studio構建。

對於每個版本,我們增加二進制文件的版本號。我們有一個執行和更新所有proj文件中的值的進程。

當visual studio編譯時,它會將每個.net文件的程序集信息添加到註冊表中。由於版本號更改,註冊表項更改。註冊表從不清理。所以我剛剛積累了一年或一年以上的註冊表條目。

明智的安裝程序運行時,它正在掃描註冊表,我不確定爲什麼現在。使用ProcMon,我們可以看到進程正在運行並閱讀註冊表。由於註冊表膨脹得太多,它會減慢構建時間。

現在最大的問題將是如何防止在新的生成機器上的這個問題?我如何清理我們構建的所有CLSID條目?

在原始的Win7構建系統上,整個構建在20分鐘內完成!

此外,我對該項目的明智的工作室設置做了一個更改。我將它切換到mszip壓縮,而不是使用高壓縮。我們的輸出文件大50MB,但構建時間要快得多 - 即使是在新機器上。

SOLUTION:

添加一個乾淨的解決方案任務之前更改版本號。這一個變化導致了幾個月的構建時間非常一致。

問題是公司已經改變了更改程序集版本和文件版本值的過程。我們很少知道重建會在每個版本的註冊表中留下彙編信息。所以,任務列表現在看起來像:

  • 清潔.NET解決方案
  • 增加版本的文件版本和裝配版本。
  • 構建.NET解決方案

希望這有助於別人誰遇到同樣的問題。