技巧/訣竅:硬碟速度和Visual Studio性能

  • 23229
  • 0
  • 2011-07-09

摘要:技巧/訣竅:硬碟速度和Visual Studio性能

【原文位址】Tip/Trick: Hard Drive Speed and Visual Studio Performance
【原文發表日期】 Thursday, November 01, 2007 2:24 AM

人們經常在技術大會上向我詢問PC硬體方面的建議。具體地說,「你能否推薦我應該用什麼樣的機器來用Visual Studio做開發?」或者「你的筆記本看上去非常快,那是什麼型別的?」

在這個問題上,我的一些建議是很標準和明顯的:從理想的角度講,你要得到一個雙核或更好的CPU。我還總是推薦記憶體要2G或更多。

但有一個好像經常讓人有點吃驚的建議是,確認你在購買新機器時,有可能的話,總是購置最快的硬碟,有必要的話,把購買額外CPU處理器速度的錢用來投資購置較快的硬碟。

為什麼硬碟速度是重要的?

在過去的幾年裡,多核CPU已經變得足夠快了,在大多數常見的應用場景裡,你最終並不會為機器上的處理器能力的原因而感到滯礙(block)。

最有可能滯礙你的是你的機器訪問你硬碟的Seek和I/O速度。如果你使用的應用需要讀寫大量的文件,你的CPU利用率非常低是典型的,因為應用也許會花費它的大部分時間在等待硬碟操作的完成。

當你用Visual Studio做開發時,你結果會讀寫許多文件,花費大量的時間做硬碟I/O操作。大的專案和解決方案可能會有成百上千個源文件(包括圖片,css,網頁,用戶控制項等等)。當你打開一個專案時,Visual Studio需要讀取和分析其中所有的源文件以提供intellisense。當你使用源碼控制系統,check out一個文件時,你會更新硬碟上的文件和時間戳。當你編譯方案時,Visual Studio 會檢查來自多個硬碟路徑的程式集是否更新過,當編譯完成時,需要寫出多個新的程式集,同時在硬碟上持久相應的.pdb偵錯器符號文件(每個文件都是單獨的保存操作)。當你把偵錯器附上一個行程時(當你按F5運行應用時的預設行為),Visual Studio需要查詢和載入應用所有的程式集偵錯器符號文件和DLL,以設置中斷點。

如果你有個慢的硬碟,Visual Studio會在等待它完成這些讀寫操作時阻塞住,這會極大地減慢你整體的開發體驗。

對筆記型電腦硬碟的一些建議

大多數PC筆記型電腦常規硬碟的速度是5400rpm,這是非常慢的盤。如果你打算買一個新的筆記型電腦,並計劃在上面使用Visual Studio的話,我強烈建議你得到7200rpm的硬碟。你以後會察覺這會帶來多麼大的好處。

你也許會想,如果你買的是個高檔的筆記本,內含的「當然」不會是塊慢的硬碟吧。別這麼想,看一下這個高端的ThinkPad(我用的就是這個牌子)的預設組態,或者這個高端的Dell XPS筆記本(3343美元起價)的 預設組態,或者這個17寸 Apple MacBook Pro筆記本(2799美元)的預設組態。注意,這三個高檔的筆記本預設配備的都是速度為5400rpm的硬碟

加上額外的55美元(Lenovo), 93美元(Dell) 或者200 美元(Apple),你就可以升級到速度為7200rpm的硬碟。投入這小量的額外金錢換來一個比較快的硬碟對性能造成的差別很大,絕對是值得的投資。

對桌面型電腦硬碟的一些建議

對於桌面型電腦的組態,做2個方面的硬碟性能考慮:

1) 考慮購買一個10000rpm的硬碟。這些硬碟超快,跟那些隨桌面機器組態的常見的7200rpm硬碟相比,區別很明顯(Jeff Atwood對此有個很棒的文章,推薦使用這些高速硬碟)。

2) 考慮購買第二個硬碟,設置你的作業系統和OS虛擬記憶體交換文件(virtual memory swap file)使用其中一個硬碟,然後把你所有的資料(圖片,檔案,以及Visual Studio 專案等)儲存在第二個硬碟上。這樣的方法的好處是,你讀寫資料的操作不會與你作業系統更新虛擬記憶體文件的硬碟I/O作競爭。

Visual Studio的其他性能建議

既然說到改進Visual Studio的性能問題,你也許要參閱一下下面這些部落格文章和文章,裡面有一些很好的建議:

我最近聽說的另外一個可能的性能問題是,有幾個人報告說用Google工具列外掛而遇上了問題。不知道什麼原因,在把Visual Studio偵錯器附上瀏覽器時,有時會造成很長的耽擱。如果載入你的web應用時你看到有很長的耽擱,而且安裝了Google工具列(或其他的工具列)的話,你也許要試著將它們卸載,看一下是不是它們造成的問題。

希望本文對你所幫助,

Scott

【附註】想閱讀我的其他技巧/訣竅文章的話,請參閱我的ASP.NET技巧,訣竅和教程網頁