TortoiseSVN: 解決TSVNCache佔用CPU過高的設定
竟然被中文介面誤導了這麼久!如果你偶爾在工作管理員裡發覺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
再試用觀察一陣子再來確認應該用那樣的設定較好。
##
您可能也會有興趣的類似文章
- 試用TortoiseSVN 1.4 RC1–更新 (2則留言, 2006/09/06)
- Subversion與TortoiseSVN釋出新版1.3 (0則留言, 2006/01/05)
- TortoiseSVN的命令行操作 (0則留言, 2015/04/03)
- 初試TortoiseSVN的收穫 (4則留言, 2005/09/16)
- 重新排列右鍵功能表(Context Menu)的選項 (0則留言, 2006/07/16)
- SVN2CL: 自動產生變動紀錄的腳本–修改 (3則留言, 2006/08/23)
- 兩個Subversion的前端工具:QSvn、Subcommander (0則留言, 2006/06/23)
- [Subversion] Keywords擴展設定 (2則留言, 2005/09/03)
- 整合Redmine的TortoiseSVN外掛:TurtleMine (0則留言, 2015/01/23)
- Subversion版本庫匯入Git的步驟與SVN整合步驟 (0則留言, 2014/10/03)
- Subversion權限設定範例說明 (0則留言, 2009/09/09)
- NetBeans的Subversion設定的最後一個步驟 (0則留言, 2006/02/03)
- 升級Subversion 1.7 (0則留言, 2012/11/06)
- [Subversion] 可重覆使用的性質設定批次命令 (1則留言, 2006/07/13)
- 使用SmartGit整合Subversion中央版本庫與Git本地端操作 (0則留言, 2017/05/05)
Sorry, 很久沒用Google sc…