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

在Shellextension裡,只針對目前所在資料夾做圖示異動更新;只佔用1MB記憶體,但因只快取一個資料夾,當Working copy內容較多時會花較多時間才能更新完畢

  • None

不做任何圖示覆蓋快取,因此圖示更新速度較慢

我特別做了測試把狀態改用Shell,重新開機後工作管理員裡就找不到TSVNCache.exe了,用檔案總管檢視Working copy資料夾時,圖示覆蓋以較緩慢的速度顯示出來。

磁碟機類型

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

在Subversion Forum這篇討論裡也有如下建議:

  • 把A:*、C:*、D:*到Z:*都加到除外路徑裡,表
    示每個磁碟都不做異動掃描
  • 再把工作中的Working copy加入包含路徑,如c:NewProject*、
    d:NewWD

再試用觀察一陣子再來確認應該用那樣的設定較好。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *