這大概是所有由VS.NET 2003轉到VS 2005的ASP.NET Developer最重要的感想之一吧! 跟VS.NET 2003時代的ASP.NET Web Application Project相比,VS 2005的Web Site Project Build起來真像老牛拉車,只見CPU猛飆,HD狂轉,以前3-5秒搞定的事,現在沒有個10秒20秒東西出不來,對我這種且戰且走型的Programmer來說,真是痛苦的折磨。

前些日子,看到Scott Guthrie一篇文章,讓我眼睛一亮,直到剛才有機會試了一下。親愛的史考特,這真是太神奇了! 一個Refrence了四個dll的專案,Build時間足足縮短為1/3(12秒->4秒),大家看完以下的說明,快點試試吧!

Scott的文章裡提到了一件事,當你的ASP.NET專案參考DLL時,若DLL是來自於檔案(也就是用瀏覽功能去挑DLL檔案),VS 2005會很"貼心地"自動補上一個yourAssemblyDllName.dll.refresh的檔案,裡面只有一行文字,指向原始參考的檔案路徑,其用意是每次Build Web Project時,雖然BIN下已經有了該DLL檔,VS 2005還是會去原始來源檢查該檔案有沒有更新。若有,會將較新版的DLL檔以及其相依的DLL一併Copy回BIN下面。這樣子,被參考DLL只要一有更新,不勞你動手,VS 2005就會自動抓最新版的回來用。雖然Scott強調的是Dueling Assembly Reference Problem(導因於共用被參考檔的版本衝突),未必會發生在每個Project中,但那個.refresh的特性,倒讓我想試看看單純.refresh造成的效能衝擊。我找了一個專案,特意以選取檔案的方式參考了幾個DLL檔案,果不其然,.refresh出現了:

開啟專案後第一次Build Web Site耗時12秒,第二次約8秒。接著我將四個.refresh移除,咻~~~ 首次Build大約只花了4秒,之後更是不到2秒,效果驚人!! (剛才在另一台機器不同專案做的實測是25"->10",快了一倍以上!)

被VS 2005的慢郎中性格氣到吐血的朋友們,不妨試試,再留言分享一下實測的改善效果吧!


Comments

# by Anonymous

還是不知道dll怎麼加進來

# by Darkthread

你是指在Web Site Project中要參考DLL嗎?<BR/>有三個地方可以加,在BIN目錄上按右鍵,在Project的那一列按右鍵,選單中有Add Reference選項;Project Property Page也可以Add Reference或Add Web Reference.

# by Kim

這篇讚喔感恩

# by gary

哇,真得快好多喔差了至少二、三倍的時間,真是太感謝了

# by Gary

真得快好多,謝謝您的告知,感恩

Post a comment