2007年8月21日 21:10

TortoiseSVN: 解決TSVNCache佔用CPU過高的設定

TortoiseSVN settings 竟然被中文介面誤導了這麼久!如果你偶爾在工作管理員裡發覺TSVNCache.exe突 然耗用許多CPU資源(有時會超過50%),那要趕緊去檢查TortoiseSVN的 設定。原來是這個常駐的Process會定時去掃描受Subversion控 管的檔案是否被修改了,掃描到後,這些被修改的檔案、與其所屬的子目錄、目錄等的覆蓋圖示都一併更新,而就是這個動作不僅佔用約10-50 MB記憶體,也會瞬間衝出超過CPU 50%負載。

圖示覆蓋與狀態欄更新設定

打開TortoiseSVN的 【設定視窗(Settings)→視覺樣式(Look and Feel)→圖示覆蓋(Icon Overlays)】,右邊第一個Radio Group名稱「圖示覆蓋/狀態列」的英文是「Icon Overlays/Status Columns」,其中的Status Columns應譯成狀 態欄才對,它指的是在檔案總管裡把顯示模式切換成詳細資料時, 標題欄位裡的Subversion欄位是否要同步更新狀態。如果你只會在檔案總管裡操作Subversion狀態的話,應該把「僅在檔案總管中顯示圖示覆 蓋」打勾,以免除另存新檔、開啟檔案等對話窗也更新圖示狀態。但我有時會在Total Commander裡操作Subversion,因此就不能勾選。

狀態快取設定

右邊第二個Radio Group名稱譯成「狀態列」,讓人誤解成以為是顯示訊息的狀態列設 定,但其實英文是Status Cache狀態快取設 定,指的是資料夾與檔案圖示的SVN小圖示的覆蓋狀態的處理模式。Status Cache有3個選項:
  • Default
預設的快取設定,使用TSVNCache.exe 來定時掃描檔案系統,找到要變動的檔案後發出更新圖示的通知給作業系統
  • Shell
在Shell extension裡,只針對目前所在資料夾做圖示異動更新;只佔用1MB記憶體,但因只快取一個資料夾,當Working copy內容較多時會花較多時間才能更新完畢
  • None
不做任何圖示覆蓋快取,因此圖示更新速度較慢
我特別做了測試把狀態改用Shell,重新開機後工作管理員裡就找不到TSVNCache.exe 了,用檔案總管檢視Working copy資料夾時,圖示覆蓋以較緩慢的速度顯示出來。

磁碟機類型

磁碟機類型是指定讀取Subversion檔案狀態的對象,建議選硬碟,以免別的媒體較慢的讀取速度造成TortoiseSVN效 能低落。

在Subversion Forum這篇討論裡也有如下建議:
  • 把A:\*、C:\*、D:\*到Z:\*都加到除外路徑裡,表 示每個磁碟都不做異動掃描
  • 再把工作中的Working copy加入包含路徑,如c:\NewProject\*、 d:\NewWD
再試用觀察一陣子再來確認應該用那樣的設定較好。

  • 您可能有興趣:

    使用svn://連檔案庫:svnserve.exe
    emisjerry 發表於樂多回應(0)引用(0)專案管理工具編輯本文
    樂多分類:網路/3C切換閱讀版型 │昨日人次:1 │累計人次:5763

    引用URL

    http://cgi.blog.roodo.com/trackback/3979261