Как проверить скорость загрузки и скачивания

Я пытаюсь написать код для проверки скорости загрузки и выгрузки моего интернет-провайдера с помощью 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
Другие вопросы по тегам