正如其他人所提到的,分支及其他refs仅仅是以文件形式存放(但也不全是,比如packed refs )并且成本非常廉价,但这并不意味着他们的数据量不会影响整体性能(可以阅读Poor push performance with large number of refs),可以看2014年的一个例子,20k的refs就已经对git库性能产生了影响。
如果我没记错,几年前,部分ref处理的时间复杂度是O(n²),好在现在已经修复了这个问题。
同样有点过时的Scaling Gerrit
也谈到高ref量带来的潜在问题,但也需要注意到有些站点的gits拥有超过100k的refs,甚至我们的git库refs量已经超过150k,即便如此,我并不认为这将带来什么性能问题。
拥有大量refs的一个方面也代表一些git事务开启时会产生大量的ref广告?大概150k的refs会产生10m大小的这样的广告数据,即 每次 git fetch
操作将会下载额外的10m数据。
因此,不要完全忽略上述问题同时呢也没必要为了大于区区2000 refs而搞得难以入睡。
网友评论