有人知道拥有大量分支机构(2000+的Git回购协议)的影响是什么吗?因为有那么多分支,git pull或git fetch会变慢吗?如果有差异,请提供基准。
最佳答案
正如其他人所指出的,分支和其他引用只是文件系统中的文件(由于packed refs而不是很真实),而且相当便宜,但这并不意味着它们的数量不会影响性能。请参阅git邮件列表上的Poor push performance with large number of refs线程,以获取最近(2014年12月)的git性能受存储库中20k refs影响的示例。
如果我没记错的话,几年前REF处理的某些部分是O(n²),但从那以后就可以很好地修复了。有一个repo-discuss thread from March 2012包含一些可能有用的细节,如果可能是日期和JGIT特有的。
这篇有点过时的文章讨论了高引用计数的潜在问题(除其他外),但也注意到一些站点具有超过10万个引用的gits。我们有一个约15万refs的git,我认为我们没有看到任何性能问题。
拥有大量引用的一个方面是在一些Git事务开始时引用广告的大小。上述150k ref git的广告大小约为10MB,即每个git fetch
操作都将下载该数量的数据。
所以,是的,不要完全忽视这个问题,但是你不应该因为仅仅2000个参考而失眠。