[MERGE] A hack to make urllib not call recv(1) lots and lots.

Andrew Bennetts andrew at canonical.com
Mon Mar 17 15:31:23 GMT 2008


John Arbash Meinel wrote:
[...]
> 
> Well, you could always use 'netem' to configure a high latency link on
> your own computer. I've used it before when testing stuff like 'bzr push'.
> 
> Add 50ms latency to the loopback (100ms round-trip ping time):
>  sudo tc qdisc add dev lo root netem delay 50ms
> 
> Restore it back to normal
>  sudo tc qdisc del dev lo root

Thanks!

I've used your recipe, and I've just repeated my experiments from last night.
I also followed Robert's suggestion, and bumped the buffering up to 64kB
(updated patch attached for completeness).

Here's unpatched bzr.dev, run twice:

real    2m48.769s
user    2m14.812s
sys     0m1.324s

real    2m46.799s
user    2m14.644s
sys     0m1.388s

And here's my hack:

real    2m39.456s
user    2m6.116s
sys     0m1.200s

real    2m38.222s
user    2m5.864s
sys     0m1.392s

So it appears it *does* make a measurable improvement.

FWIW, the branch I'm using can also be found at
http://twistedmatrix.com/~spiv/bzr/twisted/trunk/

-Andrew.




More information about the bazaar mailing list