TortoiseHg很慢

alf*_*les 20 version-control performance mercurial tortoisehg

基本上,它在锡上说的是:TortoiseHg很慢.

我的团队最近从Subversion搬到了Mercurial.(部分是为了利用Kiln进行代码审查)我们注意到的一件事是通过TortoiseHg与Mercurial进行交互是非常缓慢的.一些统计数据:

  • 打开TortoiseHg Workbench:8分13秒
  • 单击修订时的响应时间:2.8秒
  • "刷新当前存储库"的时间:6.4秒
  • 检查传入更改的时间:12.8秒

所有这些确实增加了一种非常缓慢的感觉应用.作为参考,以下是命令行工具时间:

  • hg status:4.573秒
  • hg incoming:12.150秒

命令行时间似乎与工作台时间一致,但工作台使延迟更加令人沮丧,因为它与程序的使用同步.例如,一个典型的任务是"获取我的同事刚刚推送的最新资料".它看起来像这样(只列出在计算机上等待的时间,舍入):

  • 打开TortoiseHg:10分钟.
  • 通过双击存储库注册表打开相应的存储库:5秒.
  • 提交需要提交的本地更改:
    • 点击"工作目录":5秒.
    • 选择重要文件并键入提交消息.
    • 按提交:20秒.
  • 获取同事的变化:
    • 检查传入的变更集:10秒.
    • 回顾一下.
    • 接受传入的变更集:40秒.
  • 搁置未完成的更改:
    • 打开搁置对话框:2秒.
    • 搁置剩余文件:6分钟
    • 刷新:5秒.
  • 合并:
    • 单击另一个头:3秒.
    • 与当地合并:
    • 等待"清洁"验证:15秒.
    • 等待合并(假设没有冲突):10秒.
    • 提交:30秒.
  • 取消改变:
    • 打开搁置对话框:2秒.
    • 脱颖而出:6分钟.
    • 刷新:5秒.

总计:24分32秒.

这些分钟中的十二分钟用于搁置和搁置.十个人刚刚开业.这样做的一个后果是人们倾向于提交他们不确定会去任何地方的东西,以避免搁置成本.但即使你没有搁置也没有开放费用(也许你只是让它打开),仍然需要2分半钟的细致点击来获得最新的东西.

而这甚至不计算克隆等等更重要的东西.一切都很慢.

我有:

  • 禁用防病毒软件.
  • 禁用索引.
  • 重新启动.
  • 在3个不同版本的Windows上尝试过它.
  • 尝试不同的硬件,大多数合理的质量:Core 2 Duo @ 3.16 GHz,8Gb Ram.
  • 在32位和64位操作系统上尝试过.
  • 试图断开网络连接.

存储库实际上是两个存储库:主存储库和包含所有第三方二进制文件的子存储库..hg主仓库的文件夹是676 MB..hg子仓库的文件夹是641 MB.default主仓库中的内容为7.05 GB.default子仓库中的内容为642 MB.主仓库中的平均文件大小为563 KB.主仓库中的最大文件大小为170 MB.主仓库中有13,438个文件.子仓库中的平均文件大小为23KB.子仓库中的最大文件大小为132 MB.子仓库中有57087个文件.

我启用了big-push,caseguard,fetch,gestalt,kbfiles,kiln,kilnauth,kilnpath,mq,purge和移植扩展.

任何想法从哪里开始弄清楚如何加快速度?缓慢让我们发疯.

alf*_*les 28

好的,回答我自己的问题,因为我按照蒂姆的建议找到了答案.

罪魁祸首是kbfiles从FogCreek.禁用从12秒到.7秒的统计时间.同样,GUI打开得比我时间更快​​.重新启用它会导致一切都再次大幅减速.

看起来并不是每个慢的东西都可以归咎于kbfiles,但最糟糕的是它可以.(具体来说,搁置仍然很慢 - CPU受限.但我们可以解决这个问题.)

  • 好极了!现在,我对回答自己的问题感到非常愚蠢.:) (3认同)