解决 TSVNCache.exe 占CPU的问题

 

 

=============================< BEGIN >==================================

然被中文接口误导了这么久!如果你偶尔在工作管理员里发觉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 被占住的情形,因此这个选项最好还是勾起来。

 

 

 

[前言 ]

TortoiseSVN是开源界非常流行的一款源代码控制和管理软件,在开源项目里,几乎都用到了SVN。

 

[问题 ]

安装了SVN后会有一个TSVNCache.exe的进程驻留内存,这个进程会定时地去扫描Subversion管理的文件夹/文件是否被修改了,一旦发现有更新,那本地的这些有更新的文件/文件夹就会被更新,这个动作不仅会占用10-50MB左右的内存,而且也会在执行的瞬间占用超过CPU 50%的负载。对于要求较高的使用者来说,这个进程还是影响到了PC的使用性能,
那么应该如何处理它呢?

 

[解决方法 ]
方法1、

    打开系统的文件夹管理–>右键–>TortoiseSVN–>settings–>Icon Overlays–>Status cache 设为”none”就可以了。

    按照(1)操作,就会屏蔽掉文件状态图标。不建议采用方法1。

 

方法2、

按照(1)操作,就会屏蔽掉文件状态图标。
在settings——>Icon overlays里先把所有盘符加入exclude paths里,每个分区一行。
注意:

     1、后面要加上*,表示子目录排除,例:
          c:/*
          d:/*

     2、每个排除目录都是以换行来区分的。记得是换行哦~


然后把源码存放目录加到include paths里,比如我的源码全部放在D:/codes/和e:/codes下面,就加上:
D:/codes/*
e:/codes/*
这样TSVNCache占用的内存会少很多,并且也能显示文件状态图标。

 

注意:多个目录需要换行来分割。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值