powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как замерить скорость передачи данных?
15 сообщений из 15, страница 1 из 1
Как замерить скорость передачи данных?
    #37900582
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

подскажите пожалуйста, как правильно замерить скорость передачи данных, если я подключаюсь к удалённому серверу через SOCKS5 прокси, при помощи fsockopen().

Правильно ли я понимаю:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
// Обмен приветствиями с SOCKS прокси, устанавливаем соединение
...
// Соединение установили, читаем данные из сокета

$start = microtime( true );

$html = fread( $socket );

$time = microtime( true ) - $start;
$size = strlen( $html );
$speed = 1 / $time * $size / 1024;

echo "Скорость загрузки $speed KB/sec";



Я считываю маленькую страничку ( 500 байт ), и при таком алгоритме, скорость достигает 15000 кбайт/сек, вызывая у меня подозрения в объективности.

Может размер загружаемых данных должен быть больше для более объективной оценки? Или что-то другое я делаю не так? Объясните пожалуйста.
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37900597
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37900632
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow http://php.net/manual/ru/function.microtime.php

А нельзя ли немного поподробнее? Адрес офсайта с доками по php мне знаком.
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37900638
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
$start = microtime( true );
var_dump($start );
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37900953
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
руки оторвать за пробелы в параметрах)
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901028
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq500 байтСо свистом лезут в один пакет. Какая уж тут объективность...
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901222
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklepoiuytrewq500 байтСо свистом лезут в один пакет. Какая уж тут объективность...

Какой минимальный объём необходим?
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901243
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увеличил объём загружаемой страницы до 5Кб

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$start = microtime(true);
$data = '';

while(!feof($r))
{
  $data .= fgets($r, 512);
}

$diff = microtime(true) - $start;
$size = mb_strlen($data, 'utf-8');
$kbs  = round((($diff>1) ? $size/$diff : 1/$diff*$size)/1024, 1);



результаты таковы:

скорость: 126.8 kb/sec (время чтения 0.044363975524902, прочитано байт - 5759)
скорость: 19 kb/sec (время чтения 0.29007196426392, прочитано байт - 5630)
скорость: 60 kb/sec (время чтения 0.093607902526855, прочитано байт - 5754)
скорость: 23.9 kb/sec (время чтения 0.23501896858215, прочитано байт - 5759)
скорость: 22.8 kb/sec (время чтения 0.24130392074585, прочитано байт - 5629)
скорость: 15089.1 kb/sec (время чтения 0.00036501884460449, прочитано байт - 5640)
скорость: 14642.4 kb/sec (время чтения 0.00038409233093262, прочитано байт - 5759)

Последние две строчки смущают, может ли быть такое, 14 Мб/сек?
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901426
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас надо спросить)
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901480
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettУ вас надо спросить)

Я если бы знал, здесь не спрашивал. Думал, может где то какое-то оборудование у хостера кеширует что-то, пробовал отправлять запросы к странице с рандомными значениями GET параметров, всё равно, иногда появляются такие. Не понимаю.
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901969
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

Скажите пожалуйста, верно ли замерять скорость передачи данных, замеряя время чтения ответа сервера (fread) длинною в 5Кб ?
И почему могут получаться такие большие значения (14Мб/сек)?
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901982
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

какая ОС на комп, где исполняется показанный код?
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37901990
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftpoiuytrewq,

какая ОС на комп, где исполняется показанный код?

Скрипт выполняется на сервере хостинга под Linux be3 3.2.0-2-amd64
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37902055
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewqверно ли замерять скорость передачи данных, замеряя время чтения ответа сервера (fread) длинною в 5Кб ?Смотря что Вы хотите получить )))

Имейте в виду, что где-то по пути может быть буферизация данных. Размер буфера обычно порядка нескольких килобайт, однако, угадать его вряд ли получится. В пути следования пакетов может быть шейпер, да и мало ли чего еще...
В таком случае необходимо передавать достаточно большой объем данных с тем чтобы все буферы заполнились. Вообще, есть термин "установившаяся скорость", актуально при передаче больших объемов, когда влияние переходных процессов не сильно влияет на результат.
Вероятно, для получения более-менее постоянных или установившихся значений следует начинать от десятков или даже сотен килобайт.
...
Рейтинг: 0 / 0
Как замерить скорость передачи данных?
    #37902135
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleВероятно, для получения более-менее постоянных или установившихся значений следует начинать от десятков или даже сотен килобайт.

Большое спасибо, опытным путём установил размер загружаемых данных от 100Кб.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как замерить скорость передачи данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]