TortoiseSVN: 解決 TSVNCache.exe 佔住 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

在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

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

=============================< END >================================== 

我發現如果「僅在檔案總管中顯示圖示覆蓋」選項沒有勾選,還是會出現 CPU 被佔住的情形,因此這個選項最好還是勾起來。

 

本文转自:http://www.dotblogs.com.tw/huanlin/archive/2008/04/23/3312.aspx

关于SVN导致电脑速度慢的问题,进程里TSVNCache.exe非常耗CPU

这个进程是用于检测工作拷贝里的文件是否被修改,如果被修改,则显示相应的文件图标

右键->TortoiseSVN->settings->look and feel->Icon Overlays->Status cache 设为none

可以禁用这个功能

 

http://www.iusesvn.com/subversion/tortoisesvn_doc/1.4/tsvn-dug-settings.html

图标叠加设置

图 5.43. 设置对话框,外观与样式页面

设置对话框,外观与样式页面

此页面允许你选择TSVN为哪些条目显示图标覆盖。选择网络磁盘可能会非常慢,所以默认情况下不为定位于网络共享中的工作副本显示图标覆盖。你甚至可以取消所有的图标覆盖,但那样做还剩下什么好玩儿的呢?

USB闪存看上去是个特殊情况,因为驱动类型是设备自主标识的。于是有些显示为固定驱动器,而有些显示为可移动磁盘。

默认情况下,图标覆盖将不止显示在Windows资源浏览器下,同样会显示在所有的打开/保存对话框里。如果你想让它们 仅仅 显示在Windows资源浏览器下,勾选 仅在资源管理器中显示图标覆盖 选项。

因为它要花费一段时间来获取工作副本的状态,TSVN将使用一个缓存来存储这些状态,从而使浏览器在显示图标覆盖时,资源占用的不太厉害。你可以根据你的系统和工作副本的大小来在这里选择让TSVN使用哪种类型的缓存:

默认

把所有状态信息缓存在一个独立进程中(TSVNCache.exe)。该进程监视所有驱动器的更改,并在工作副本中的文件被修改时重新获取其状态。该进程以最低优先级运行,所以其他程序不会被它挤兑。这同样意味着状态信息并不是 实时 的,因为它需要几秒钟时间处理图标覆盖的变化。

优点: 图标覆盖递归地显示状态,就是说,如果一个处在工作副本深处的文件被修改了,所有途径的文件夹包括工作副本的根目录都会显示出修改的图标覆盖。也因为该进程可以向Windows外壳发送通知,资源管理器左面的树形图通常也会更改。

缺点: 即使你已经不在项目下工作了,该进程仍然持续运行。取决于你工作副本的数量和大小,它将占用10-50 MB的RAM内存空间。

Windows外壳

缓存在外壳扩展dll中直接完成,但仅仅是为那些当前可见的文件夹。每次你浏览到其他文件夹,状态信息就会被重新获取。

优点: 仅仅需要很少的内存(大约1 MB),并且可以 实时 显示状态。

缺点: 因为仅有一个文件夹被缓存,图标覆盖不会递归地显示状态。在大一些的工作副本下,它在浏览器中显示一个文件夹将比默认缓存模式花费更多时间。而且 mime-type 列将无效。

在这种设置下,TSVN在浏览器里就完全不去获取状态了。因此,版本控制下的文件将不会获得任何图标覆盖。文件夹也仅仅有个“正常”状态的图标覆盖,其他的不会显示,也不会有其他额外的列可用。

优点: 绝对不会占用任何额外的内存,也完全不会减慢浏览器的浏览速度。

缺点: 文件、文件夹的状态信息不会显示在浏览器中。要获知你的工作副本是否被修改了,你需要使用“检查更新”对话框。

若你选择了默认选项,将同样决定如下选择: 在文件夹包含非版本控制的项目时,把文件夹图标覆盖标记为已修改。这个有用的设置可以提醒你已经创建了非版本控制的新文件。

排除路径 是被用来告诉TSVN 不用 在哪些路径下显示图标覆盖和状态列。如果你有些很大的工作副本,而这些工作副本仅仅包含你完全不想改变的库文件,从而你也不需要显示图标覆盖,这时该功能将会很有用。举个例子:

填写 f:/development/SVN/Subversion仅仅 在这个特殊文件夹上取消图标覆盖。 你仍然可以在该路径下的所有文件、文件夹上看到图标覆盖。

填写 f:/development/SVN/Subversion* 将在路径以 f:/development/SVN/Subversion 开始的 所有 文件和文件夹上取消图标覆盖。这意味着你在该路径下的任何文件/文件夹上都将看不到图标覆盖了。

包含路径 也使用同样的语法。除了有些反例: 即使该路径处在某个取消图标覆盖显示的特定驱动类型下,或是处在上面的排除路径之下, 也依然会显示图标覆盖。

TSVNCache.exe 同样使用这些路径来限制它的扫描。如果你想让它仅仅在某些特定文件夹里监视,就取消所有的驱动器类型,并仅仅包含你允许被扫描的文件夹。

 

TortoiseSVN 是一款基于 Windows 平台的图形化 SVN 客户端工具,它允许用户通过右键菜单操作来实现版本控制功能,使得在本地文件夹上管理 SVN 版本库的操作变得简单易懂。 ### 下载 TortoiseSVN 访问链接:https://tortoisesvn.net/downloads.html 您可以通过以下几个步骤下载最新版的 TortoiseSVN: 1. **选择版本**:网站页面顶部有不同版本的支持系统(如Windows XP SP3、Vista/Win7、Win8)以及不同的语言选项(英语、德语、法语、西班牙语等)。请根据您的操作系统和偏好选择合适的版本。 2. **下载安装包**:点击相应链接后,页面会显示详细的版本信息,包括发布日期、大小、SHA-1哈希校验码等。您可以查看这些信息以确认下载的是最新的稳定版本。然后,点击“Download”按钮开始下载。 3. **安装 TortoiseSVN**:下载完成后,双击下载的 `.exe` 文件运行安装程序。按照向导提示完成安装过程。通常默认设置即可满足大部分需求,但也可以根据个人喜好调整安装目录或其他选项。 ### 使用 TortoiseSVN 基本操作示例 一旦安装完毕并启动 TortoiseSVN,右键点击您希望添加到版本控制系统的文件夹或文件,会有多个与 SVN 相关的操作选项,比如: - **Add to Repository**: 添加选定的文件或文件夹到 SVN 版本库。 - **Commit**: 提交当前修改到版本库,可以附带提交说明。 - **Update**: 更新工作副本至最新版本。 - **Compare with Working Copy**: 比较当前工作副本与最近一次提交的内容差异。 - **Diff**: 显示两个版本之间的差异。 - **Log**: 查看历史变更日志。 这些基本操作覆盖了日常版本控制的需求,帮助您跟踪代码变化、协作开发以及回滚版本等功能。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值