简单来说,TortoiseHg很慢。
我们团队最近从Subversion迁移到了Mercurial。(部分原因是为了利用Kiln进行代码审查)我们注意到,通过TortoiseHg与Mercurial交互非常缓慢。以下是一些统计数据:
- 打开TortoiseHg工作台: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秒。
这其中有12分钟用于保留和取消保留。还有10分钟仅用于打开操作。这导致人们往往会提交一些他们不确定是否需要的东西,只是为了避免保留的成本。但即使你假设没有保留和打开的成本(也许你只是让它保持打开状态),仍需要精细的点击2分半钟才能得到最新的内容。
而且这还不包括像克隆等更重要的操作。所有的操作都很慢。
我已经:
- 关闭了杀毒软件。
- 禁用了索引功能。
- 重新启动了计算机。
- 尝试在3个不同版本的Windows上进行。
- 在各种合理品质的硬件上尝试:Core 2 Duo @3.16 GHz,8Gb内存。
- 在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 和 transplant 扩展。
有没有任何想法从哪里开始找出如何加快速度?速度缓慢让我们发疯。