TSVNCache.exe占用CPU过高的问题

这个常驻的TSVNCache.exe进程,会定时检查服务器端文件是否更新,如果有更新它会自动同步有改动的文件到本地,而且包括被修改的文件、与其所属的子目录、目录等的覆盖图标都一并更新,看似很微小的一个动作,就会占用约10-50 MB不等的内存,也会瞬间冲出超过CPU 50%负载。解决办法如下:

打开TortoiseSVN——设置——图标覆盖——状态缓存——无。(一般设置成无最好,如果你要保留图标可以根据喜好设置)

如果你是英文按照以下流程即可。

TortoiseSVN–>settings–>look and feel–>Icon Overlays–>Status cache –>“none”

 

状态快取设定

右边第二个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 被占住的情形,因此这个选项最好还是勾起来。

 

posted @ 2010-08-10 20:13  cm186man  阅读(915)  评论(0编辑  收藏  举报