Как проверить скорость загрузки и скачивания
Я пытаюсь написать код для проверки скорости загрузки и выгрузки моего интернет-провайдера с помощью USB-ключа. Сервер в ключе - Lighttpd.
Мой текущий план загрузки заключается в написании сценария оболочки, который загружает файл с сервера (файл должен быть достаточно большим) и завершает процесс за 2 секунды. Затем я могу получить размер файла. Я повторяю процесс n раз (10 здесь), и возьмите среднее значение. Статистически я считаю, что скользящее среднее является лучшим значением. Пожалуйста, помогите.
ТАКЖЕ,
Мой план загрузки - взять большой файл (20 МБ) и загрузить его с помощью сценария оболочки (также можно использовать php) и использовать его для измерения скорости. Я не уверен, как измерить скорость загрузки здесь. Мне нужно преодолеть разрыв связи, где аппаратное устройство имеет значение, и мне нужно получить правильное значение, которое будет отображаться пользователю. Нужна помощь здесь.
Код для загрузки выглядит следующим образом (это файл javascript). ПРИМЕЧАНИЕ: var params составляет около 350 КиБ.
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. Итак, вы можете написать что-то вроде:
time wget http://....
wget
Можно также измерить время, но я бы предпочел time
здесь, потому что он сообщает все время, использованное для загрузки.
Для проверки скорости загрузки вы можете использовать curl
:
time curl -i -F name=test -F filedata=@localfile.jpg http://example.org/upload