... but i don't see any way to slow it down
I once had a similar requirement (not LWP, but X11 connections, though). For this, I simply sent the
data through a bidirectional proxy (implemented with IO::Socket and
IO::Select), and inserted delays as appropriate. I.e., the inner loop
shoveling the data roughly looked like this
while($sel->can_read) {
my $nbytes = sysread( ... );
my $wait_sec = $nbytes / $bandwidth;
select(undef,undef,undef, $wait_sec); # delay
syswrite( ... );
}
So, let's say with 10000 bytes being transferred ($nbytes),
and with the simulated $bandwidth being 2000 (bytes/sec), a
total delay of 5 sec. would be forced upon the transfer. This could be
refined to take the real bandwidth of the connection into account
(which was large in my case), but in order to just get a feel for
how slow something is, it might be sufficient as it is...
Similarly, you could add roundtrip latencies, or play with transfer
block sizes, etc. |