On Thu, Oct 14, 2021 at 06:47:31AM +0000, 程洋 wrote: > Seems that git receive-pack only takes 1 seconds. > After that, git rev-list takes the most time, I don't know what is it doing It's checking connectivity of what was sent (i.e., that the other side sent us all the objects). If you have a ton of refs on the server side, there are some known issues here, as just loading the "we already have this" side of the traversal can be very expensive. There's been some recent work to make this faster, like f559d6d45e (revision: avoid hitting packfiles when commits are in commit-graph, 2021-08-09) and f45022dc2f (connected: do not sort input revisions, 2021-08-09), which will be in the upcoming release. I'm sure there are more improvements that could be made on top, but those show the general direction. -Peff