SpeedTest 0.13
What Is It?
speedtest is a program I wrote to keep track of the effectiveness of my
cable
modem. There was a perception that speed was lacking for all users but
very
little hard data backing it up other than random tests done at various
times
of the day and night, usually using different speed testing sites each
time
(PC Pit Stop, DSLReports, etc). Since other users of my ISP have
expressed
interest I've decided to release this program under the GPL.
I had originally planned to load the speed data into Excel and make a
nice
little graph that I could send my ISP. I soon found out that the values
varied
so widely between tests that the data was zig-zagging all over the
place
and it was difficult to see what was going on. Since I was really more
interested
in overall speed, I wrote a little script to compute the average speeds
instead
(ala ping with min/avg/max).
What Do I Need?
You'll need to get NSPR (Netscape Portable Runtime) from
ftp://ftp.mozilla.org/pub/nspr/releases/
. I used the Linux debug (DBG) version of v4.5 Beta. Any 4.x version
should
work just fine too. You need this whether you use my binary or build
your
own.
Because this was written using mostly NSPR calls it should work on any
modern
OS and almost certainly any *nix variant. I haven't tested this at all
on
a Win32 system but in theory it should work, though you'll need to
either
write your own Makefile or get gmake.exe and use that. Win32 users will
also
need to get a Bourne or Korn shell executable to run the shell scripts.
What Sites Does it Hit?
I current hit the following test sites 4 times a day:
http://www.cableone.net/performance/perftest/gfx/test.jpg
http://oarnet.toast.net/perftest/gfx/test.jpg
http://w3.mivlmd.cablespeed.com/~rcrit/test.jpg
http://www.cnet.com/html/internetservices/g/bm/image500.jpg
Here are some additional sites I found 11/06/2003:
http://myweb.cableone.net/performance/perftest/gfx/test.jpg
http://dante.polarcomm.com/gfx/test.jpg
http://www.toledorocket.com/perftest/gfx/test.jpg
There are some values hardcoded into speedtest.cpp. Some of these sites
may no longer work so you will need to update it. It should be fairly
obvious how to do so.
I haven't asked permission to use their sites in this way and I'd guess
that
if a lot of folks started hitting them frequently they would get very
annoyed.
It is really easy to determine the URL of the image that is being
fetched
from the non-Java test sites, so you can always figure your own out or
test
the same ones I do, either way.
How Does it Work?
Most speed test sites start the timer when the HTTP request is sent. My
program
starts the timer when I try to read the first bit of non-HTTP header
data.
This means that the times won't match up nicely and my program will
very
frequently return higher speeds than the web-based speed testers.
Where Can I Get it?
You can download it here
speedtest-0.13.tar.gz
What Other Features are Planned?
I don't plan on working on this a whole lot more. I want to be able to
get
an average by the times that I run the test (8am, 12noon, 4pm and 8pm)
to
see the speed variances by time of day, but that is about it.
The shell scripts I wrote are ugly and Perl would work a lot more
efficient
but since I only deal with a weeks worth of data at a time bash works
just
great. If you want to rewrite them then by all means, go for it :-)
If you find any bugs please feel free to contact me at
rcrit@greyoak.com.