首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TortoiseHg慢

TortoiseHg慢
EN

Stack Overflow用户
提问于 2011-10-24 20:23:28
回答 3查看 6.4K关注 0票数 20

基本上,它在锡上说的话: TortoiseHg是慢的。

我的团队最近从颠覆转移到了变幻莫测。我们注意到的一件事是,通过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分钟是用来搁置和解架的。十张刚开就花了。这样做的一个后果是,人们为了避免搁置成本,往往会做一些他们不确定会去任何地方的事情。但是,即使你假设没有搁置和开放成本(也许你只是让它打开),它仍然需要2分钟半的细致点击才能得到最新的东西。

甚至连克隆之类的更重要的东西也不算在内。一切都这么慢。

我有:

  • 禁用抗病毒。
  • 禁用索引。
  • 重新启动。
  • 在3种不同版本的windows上试用过。
  • 在不同的硬件上试过,大多数都是合理的质量:Core2duo @3.16 GHz,8Gb Ram。
  • 在32位和64位操作系统上试过。
  • 试着从网络上断开连接。

存储库实际上是两个存储库:一个主回购库和一个包含所有第三方二进制文件的子回购库。主回购的.hg文件夹为676 MB。子回购的.hg文件夹是641 MB.初级回购中default含量为7.05GB。子存储器中default的含量为642MB.主回购中的平均文件大小为563 KB。主回购中的最大文件大小为170 MB。主回购中有13,438个文件。sub中的平均文件大小为23 is。中的最大文件大小为132 MB。潜艇里有57087个文件。

我有大推,案例保护,获取,格式塔,kbfiles,窑炉,千纳秒,千纳特,mq,清除和移植扩展启用.

你知道从哪里开始想办法加快速度吗?慢点快把我们逼疯了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-25 22:23:12

好吧,回答我自己的问题,因为我是在听从蒂姆的建议的时候找到答案的。

罪魁祸首是kbfiles来自FogCreek的。禁用从12秒下降到.7秒的stat时间。同样,GUI的打开速度超过了我的时间。重新启用它会使一切再次急剧减速。

并不是每一件缓慢的事情都可以归咎于kbfile,但最糟糕的是。(具体来说,搁置仍然是相当慢的-- CPU绑定。不过,我们可以解决这个问题。)

票数 28
EN

Stack Overflow用户

发布于 2011-10-25 19:26:49

那是一堆文件..。还有一些非常大。如果没有更大的文件,它的性能如何?在我看来,二进制文件不是hg/git跟踪的最好方法。

把大回购分成更小的怎么样。他们真的需要有2个巨大的回报吗?

也许硬盘上的碎片可以稍微改善一些时候。还可以查看为帮助处理大型二进制文件而创建的扩展名。见这里:

https://www.mercurial-scm.org/wiki/HandlingLargeFiles

票数 2
EN

Stack Overflow用户

发布于 2018-11-08 12:25:26

在某些情况下,建议载于文件中可能有助于提高THG速度:

5.4.8.性能影响 在大型存储库中,有些工作台特性可能会对性能产生影响。 查看‣选择日志列…

  • 启用Changes列对于使用大型工作副本的存储库来说是很昂贵的,这会导致刷新和滚动都变得缓慢。

查看‣加载所有

  • 通常,当用户滚动历史记录时,当您滚动时,会读取大量的更改集。此菜单选择允许让Workbench读取存储库中的所有更改集,可能允许更流畅地遍历历史记录。

根据我自己的经验,这些绝对是值得去做的!你至少应该试一试,看看是否有明显的效果。

此外,如果您已经阅读过为什么mercurial的hg重基速度这么慢?,那么有一个可以显著加快rebase速度的设置:

默认情况下,重基写入工作副本,但您可以将其配置为在内存中运行以获得更好的性能,并允许它在工作副本脏的情况下运行。只需在.hgrc文件中添加以下行: rebase experimental.inmemory = True

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7881508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档