When cloning git repositories, there is a significant delay on the server side before any data begins transmitting to the client. The server logs a "git-upload-pack" operation and the thread spins at 100% for a while before client begins receiving objects.
This behavior is much more noticeable with large git repositories (100+ MB) where this step takes up to 4+ minutes. It seems to be linear with the size of the repository.
Looking at the code, my guess is that it's in SimpleGitUploadPackHandler as the happens prior to the "counting objects" progress message. Does the graph walker traverse the entire repository? Is that step necessary for a clone operation?