<div class="gmail_quote">On 20 December 2010 13:54, Matt Hamilton <span dir="ltr">&lt;<a href="mailto:matth@netsight.co.uk">matth@netsight.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div id=":5i">Anyone know why urllib.urlopen() can be so much slower than using ab to do the same thing? I seem to be getting an extra 100ms latency on a simple HTTP GET request of a static, small image.<br></div></blockquote>

</div><br>Just some possibles:<div> - How many DNS lookups is each doing? Have you timed it by IP address, or with <a href="http://example.com">example.com</a> in the hosts file?</div><div> - I understand ab isn&#39;t reusing the HTTP connection - could it be reusing the TCP connection or avoiding the 3-way handshake? (My understanding of repeated HTTP requests is sketchy)</div>

<div> - Are ab and urllib transferring the same number of bytes? Is one or the other (not) using compression?</div><div> - Is ab somehow causing fewer, larger packets to be used in either the request or the response?</div>

<div><br></div><div>I&#39;d probably be reaching for a packet capture about now.<br>-- <br>Alex Willmer &lt;<a href="mailto:alex@moreati.org.uk" target="_blank">alex@moreati.org.uk</a>&gt;<br><a href="http://moreati.org.uk/blog" target="_blank">http://moreati.org.uk/blog</a> <a href="http://twitter.com/moreati" target="_blank">http://twitter.com/moreati</a><br>


</div>