From: Shawn Pearce Date: Thu, 24 May 2012 20:46:36 GMT Subject: Re: [PATCH] Add persistent-https to contrib Message-ID: In-Reply-To: On Thu, May 24, 2012 at 1:42 PM, Shawn Pearce wrote: > On Thu, May 24, 2012 at 1:29 PM, Jeff King wrote: >> On Thu, May 24, 2012 at 12:33:08PM -0700, Shawn O. Pearce wrote: >> >>> $ (for i in {1..5}; do time git ls-remote >>> persistent-https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux >>> >/dev/null;done) 2>&1 | grep real >>> real  0m0.208s >>> real  0m0.085s >>> real  0m0.079s >>> real  0m0.067s >>> real  0m0.059s >> >> Nice numbers. And as clever as I find this helper-wrapping-a-helper >> solution, I wonder if the right layer for a fix isn't inside curl. It >> already keeps an ssl session-id cache in memory; how hard would it be to >> turn that into an on-disk cache? ... > Well, this helper "solution" also has the benefit of HTTP keep-alive > working across Git command invocations. Here is plaintext HTTP, where the benefit is from HTTP keep-alive: (for i in {1..5}; do time git ls-remote http://android.googlesource.com/tools/repo >/dev/null;done) 2>&1 | grep real real 0m0.098s real 0m0.097s real 0m0.106s real 0m0.095s real 0m0.105s (for i in {1..5}; do time git ls-remote persistent-http://android.googlesource.com/tools/repo >/dev/null;done) 2>&1 | grep real real 0m0.134s real 0m0.065s real 0m0.063s real 0m0.061s real 0m0.067s Notice we still save 30ms or so in this case. That is about the RTT for my workstation to that server. :-)