Reputation: 33348
I want to add a feature to a web page which shows the user's upload speed (helping them predict how long a file will take to upload).
I was pleased to find a cool example of how to do this with javascript but when I went to check the results against other (reputable?) testing sources, the results are all over the place!
I'm specifically interested in upload speeds.
On my work ethernet:
http://testmy.net - 15Mbps
http://bandwidth.com/tools/speedTest/ - 25Mbps
http://www.brandonchecketts.com/speedtest - 3.2Mbps
http://codecanyon.net/item/javascript-bandwidth-tester/full_screen_preview/531891 - 6Mbps
http://thinkingstiff.com/scripts/upload-speed - 1-2Mbps
(live demo by the author of the script referenced above)
Initially I thought it was fluctuation from my network due to traffic from other users, etc. But I've been retesting all afternoon and each test is pretty consistent with its self. Some more than others, but generally within 5%.
So I'm left wondering:
Upvotes: 2
Views: 6223
Reputation: 2202
It all depends on what you really want to test. Do you want to test the upload speed to your server from that user or you want to give the user a tool, a speedtest tool, for him to see it's general upload speed?
Judging by the question i think it's the latter one and i would say that there is no reliable way for you to do this. All you can do is test the speed between your server and the client. And the tools you found are probably going to do that very well. But this speed depends on many factors, and it is not really representative scenario from which you can conclude the access speed which the user has to the internet. I don't know if i explained what i wanted to say well but I'll give you an example:
Let's say the user is located in Europe and has a network connection of 50/10 mbps. Your server is located in US. When you test the upload speed the traffic has to go through a lot of routers to get from EU to US and through networks which can be congested or experience some other problems, lowering the speed as a result of that. So, the speed he gets between his client and your server is 3mbps for example. At the other hand, if he was to test the speed between him and some server located closely to him, like inside his ISP's network, he would probably get the full speed of 10mbs that was promised to him. This is why you get consistent speeds for the same test server, but different when compared with each other.
In testing the bandwidth it is crucial to be as close to the client as possible. This is why a lot of ISP's have set up their own speed test servers so the user can check their access speed to the Internet. Everything beyond that is not really relevant since the speed will vary (sometime drastically) from server to server and it can't be considered a valid result.
Upvotes: 1