A significant cause of the issue is their SSL implementation. Specifically it negotiates a new connection every time instead of resuming the session, eek!
http://security.stackexchange.com/questions/5511/ssl-session...
https://www.ssllabs.com/ssltest/analyze.html?d=github%2ecom&...
http://wiki.nginx.org/HttpSslModule
As for Github, could just be a misconfiguration, or perhaps they had some more deliberate reason in mind.
Good news is I just received confirmation from one of the ops guys. He says they know about it, and are working on a fix. :)
Any idea why the default in nginx is: none. Soft off: nginx says to a client that session can be resued, but nginx actually never reuses them. Seems like a bad default to not cache.
Chrome is reporting the code tab is taking 3.7 seconds to load. 22 HTTP requests. The Pull tab has over 100 HTTP requests. I don't consider anything over 1s to be fast.
Even the initial HTML is taking more than 1.5 seconds on the Pull tab! I think you should aim for 200ms for the HTML, and maybe 1s total. This is many times slower.
Amazon is pretty decent. Their full page loads are slow, but they concentrate on above-the-fold time which is OK. I don't use Facebook much, but I think they have pretty good latency.
I think Microsoft's new mail is pretty fast but I haven't used it much.
I would say 1.x seconds for initial HTML is average. And 3-4 seconds for the full page with all assets is average. Github is in the 3-4 seconds range for onload time.
So Github is not particularly bad -- it's just average. It's certainly not "fast".
I feel like Github's perceived latency is pretty bad. I think they end up showing spinners and redrawing various parts of page to try to hide latency, but it makes it seem janky to me.
Bitbucket on the other hand is insanely slow, especially in the source browser. That said, I gladly tolerate it due to unlimited free private repos and a decent feature set.