如何检查上传和下载速度
Posted
技术标签:
【中文标题】如何检查上传和下载速度【英文标题】:How to check upload and download speed 【发布时间】:2014-02-17 23:35:31 【问题描述】:我正在尝试使用 USB 加密狗编写代码来检查我的 ISP 的上传和下载速度。加密狗中的服务器是 Lighttpd。
我目前的下载计划是编写一个从服务器下载文件的shell脚本(文件应该足够大)并在2秒内终止进程。然后我可以获得文件大小。我重复这个过程n次(这里是 10 次),取平均值。从统计上我相信移动平均线是最好的值。请帮忙。
另外,
我的上传计划是取一个大文件(20 MB)并使用shell脚本(也可以使用php)上传,并用它来测量速度。我不知道如何在这里测量上传速度。我需要弥合通信差距,设备硬件具有价值,我需要获得正确的值以显示给用户。需要帮助。
上传代码如下。(它是一个javascript文件) 注意:var params 约为 350 KiB
var uploadhttp;
var url = "http://www.example.com";
var params =
"RANDOM CHARACTER SET. This lone character file should be large enough";
function getHTTPObject()
if(!uploadhttp && typeof XMLHttpRequest != "undefined")
try
if(BrowserType=="MSIE")
uploadhttp=new XDomainRequest();
else
uploadhttp = new XMLHttpRequest();
catch(e)
alert(e);
/* if(!uploadhttp)
//alert("uploadhttp object creation failed");
else
//alert("uploadhttp object created successfully");
*/
function handler() //Call a function when the state changes.
if(uploadhttp.readyState == 4 && uploadhttp.status == 200)
//alert(uploadhttp.responseText);
function getMethod()
getHTTPObject();
/* if(!uploadhttp)
//alert("failed to create object"); */
if(uploadhttp)
uploadhttp.open("GET", url, true);
uploadhttp.onreadystatechange = handler;
uploadhttp.send(null);
function postMethod()
try
getHTTPObject();
//if(!uploadhttp)
//alert("failed to create object");
if(uploadhttp)
uploadhttp.open("POST", url, true);//,"jio","rancore");
//Send the proper header infomation along with the request
//uploadhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
uploadhttp.onreadystatechange = handler;
if(BrowserType=="MSIE")
uploadhttp.send(params);
else
var iLen = bufferedData.length;
uploadhttp.send(bufferedData);
catch(e)
alert(e);
【问题讨论】:
【参考方案1】:您可以使用wget
下载文件
并使用“时间”测量下载时间。
所以,你可以这样写:
time wget http://....
wget
也可以测量时间,但我更喜欢time
,因为它报告了用于下载的全部时间。
要测试上传速度,您可以使用curl
:
time curl -i -F name=test -F filedata=@localfile.jpg http://example.org/upload
【讨论】:
你能提出任何上传的想法吗? 使用哪种协议? HTTP 还是 FTP?如果是 FTP,则为lftp
,如果为 HTTP
,则为 curl
你如何测量上传速度。就像在下载一样,我们在客户端得到一个文件。上传呢?
实际上我在 Internet Explorer 中的代码有问题。我不确定但可能 IE 的缓冲区大小很小,这可能是问题所在。
我不明白您为什么不想使用curl
进行上传测试。这是微不足道的以上是关于如何检查上传和下载速度的主要内容,如果未能解决你的问题,请参考以下文章