Git子模块在Windows上似乎非常慢。
为了测试性能,我创建了3个裸仓库,并向它们提交了3条独立消息(未存储任何文件)。然后,我将这些裸仓库中的每一个作为子模块添加到新的git repo中,并执行了子模块更新,此过程花费了5秒钟以上。
在使用20多个子模块时,这似乎过多且非常明显。 是什么原因导致它花费这么长时间?
示例文件:https://drive.google.com/file/d/1n6fAm16tXtt_1YvXbPHhn150iuw-VGOk/view
在“子模块测试”中运行“ git子模块更新”。 测试中的所有子模块URL都是相对的。
运行Git版本2.22.0.windows.1和版本2.23.0.windows.1
修改:
使用常规命令行,git bash(如图所示),PowerShell和TortoiseGit进行了测试。
通过VonC建议的简化PATH测试。
答案 0 :(得分:0)
尝试相同的方法:
然后查看问题是否仍然存在。
使用Git 2.22 (and improved in 2.23),您可以使用以下方法测量Git命令的性能:
users = User.order(user: :id)
ActiveRecord::Associations::Preloader.new.preload(
users,
:skills,
{ order: :name } # or Skill.order(:name)
)