【问题标题】:git vs mercurial performancegit vs mercurial 性能
【发布时间】:2011-03-14 06:44:15
【问题描述】:

是否存在任何性能基准?

我希望创建一个 repo 并提交/推送运行多个 gig 的遗留代码。

是更快/足迹等吗?

如果这太模糊了,我很抱歉......

【问题讨论】:

    标签: performance git mercurial benchmarking dvcs


    【解决方案1】:

    您不会因为性能而在 git 和 mercurial 之间进行选择。两个都不错。

    只需做您将要做的事情并进行衡量即可。您可能会在第一次导入时获得最大的性能变化——这并不重要。继续挖掘。

    在空间方面,git 肯定会获胜的一个地方是,如果您在其生命周期中的许多不同路径中拥有相同的内容。也就是说,如果您的几个文件被移动。 git 的模型比 hg 的模型更支持这一点。这对你来说可能并不重要。

    在这两种情况下,您都应该考虑您的几个存储库是否实际上代表了单个项目的源代码。

    但同样,由于原始性能,在这两个相似且活跃的项目之间进行选择是不明智的。

    【解决方案2】:

    最近(2011 年 1 月)在 Mercurial and Git server performance 之间进行了性能比较。结论是 Mercurial 的性能比 Git 更稳定,但 Git 平均速度更快。

    【讨论】:

    • 感谢您提供非常有用的链接
    • 链接好像失效了。如果有人有镜子那就太好了。
    • @FabioTurati 我刚刚尝试了链接,现在可以使用了。
    • @MartinGeisler 你是对的,它现在也适用于我。我想这只是暂时的停机时间,但由于这个答案已经很老了,我认为链接可能同时变得无效。那么,+1!
    【解决方案3】:

    原始答案(2011 年 3 月,GitHub 不到 3 年)

    衡量 DVCS(无论如何都在本地执行所有操作)的正确性能是关于您的日常任务的性能:

    如果您了解limits of a DVCS,基本操作的原始性能并不那么重要:您不能将所有东西(所有项目或所有种类的像二进制文件这样的文件)。
    必须进行某种模块重组,以定义每个“模块”(连贯文件集)的正确数量的 repo。


    七年后的 2018 年更新:Windows 对 Git 的支持现已成为现实,旨在提高 Git 的性能/可扩展性。

    为了说明这一点,Microsoft 将其 整个 Windows 代码库放入 一个(巨型)Git 存储库:请参阅“The largest Git repo on the planet”:3.5M 文件,300GB,4,000 名工程师除了数千个拉取请求验证构建之外,每天在 440 个分支中生成 1,760 个“实验室构建”。
    但是这是添加了 GVFS (Git Virtual FileSystem),它允许仅动态下载您的部分需要根据您的使用情况而定。
    这在 Git 原生中不是,虽然 its integration has begun last Dec. 2017, with the implementation of a narrow/partial cloning

    【讨论】:

    • “你不能有一个可以把所有东西都放进去的单一仓库”告诉谷歌和微软......
    • @Hendrikto 同意。这个 2011 年的答案并不成熟;)我添加了一个更新。
    【解决方案4】:

    正如@MartinGeisler 在他的回答中指出的那样,提交时间非常短(如果你通过命令行提交,你的 shell 会立即返回)。

    需要很长时间的是网络clones/pushes/pulls。 Google 在他们不得不为 Google 代码 选择 DVCS 时发布了 small benchmark (see footnote 1),但它已经很老了(2008 年夏季)。

    【讨论】:

    • 我会推...很多!对不起,如果我不清楚。感谢您的输入
    【解决方案5】:

    Eric Sink 发布了针对 SVN、Bazar、Mercurial、Git 和他自己的 Veracity 的基准测试的 results

    不幸的是,这只是一个单一的操作(一次提交),只有一个代码库(Valgrind),我不确定他为所有这些 VCS 使用了哪个版本,但无论如何它一定很旧,因为文章可以追溯到到 2011 年。我想这就是 Eric 自己将它们定义为“可笑不科学的基准”的原因。无论如何,为了它的价值:

    SVN 比其他的慢得多(几乎 22 秒),但所有其他的都相似(在 3 到 5 秒之间)。 Git 显然是最快的,按百分比计算,它甚至比 Mercurial 快 很多(多花费 43% 的时间),但实际上我们谈论的是 1.4 秒的差异 - 几乎不明显。

    除此之外,我现在找不到源代码,但我多次阅读 Git 更快,尽管差异微不足道(这证实了 Eric 所做的这个测试)。所以在选择哪一个时我不会太担心速度。

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2012-12-15
      • 1970-01-01
      • 2010-10-27
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      相关资源
      最近更新 更多