![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| dVital |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 21.6.2007 Репутация: нет Всего: нет |
Мне нужно написать скрипт на php, который бы позволил измерять скорость интернет- канала. Однако, я совершенно не знаю как подступится к решению этой задачи. Может кто-нибудь подсказать принципы измерения скорости?
Я пробовал измерять скорость закачки файла, но это совсем не то.
Это сообщение отредактировал(а) PARROT - 8.7.2007, 16:34 |
|||
|
||||
| UADeveloper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.7.2007 Где: Харьков Репутация: нет Всего: нет |
||||
|
||||
| dVital |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 21.6.2007 Репутация: нет Всего: нет |
чего-то непонятно как это можно реализовать без ведома пользователя... |
|||
|
||||
| PROme2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 4.1.2006 Репутация: нет Всего: нет |
dVital, не обязательно именно файл принимать, это может быть любая инфа, автоматически отправленная post-ом
|
|||
|
||||
| dVital |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 21.6.2007 Репутация: нет Всего: нет |
Придумал маленький скриптик для этого:
Но есть проблемы: почему-то разница между текущим временем, получаемым в ЯваСкрипт и текущим временем в php всегда равно 2592000. Вообще непонятно почему.... Может кто увидит ошибку? |
|||
|
||||
| dVital |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 21.6.2007 Репутация: нет Всего: нет |
Лучше, конечно, так.. Но результат не меняется. Все равно очень большая разница между текущим временем в php и javaScript, которой быть не должно.
Может кто сталкивался с этой проблемой? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 12 Всего: 211 |
Здравствуйте,
Так как мне и самому этот скрипт не помешает решил поднять этот топик. Написано скрипт, вроде по логике все должно работать, а работает не хуже любого генератора случайных чисел..в чем собственно дело?
Добавлено через 2 минуты и 44 секунды А хотя вроде понимаю отчего. Возможно mktime() - $time вернет > 0 через пол секунды, возможно через 100 милисекунд, а возможно и в самом деле продлиться секунду..а как исправить то проблему? |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: 1 Всего: 5 |
Не знаю правильно ил нет но идея такова:
час = Читаем текущую дату выводим 100кб информации час = текущий час - час Выводим час Думаю алгоритм ясен. Сожалению не маю возможности перепроверить здесь |
|||
|
||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
azesmcar, а зачем на 8ой строчке $time по новой присваивать метку времени?
Если требуется время с точностью до миллисекунд, то есть такая функция microtime() Далее, в вашем коде для пересылки каждого байта будет проходит одна итерация в цикле, т.е. если канал, к примеру, 1 mb/s то больше времени уйдет на сам цикл, а не на передачу данных. Попробуйте выполнить следующий код:
У меня он выполнялся 0,54 секунды! Можете попробовать передавать разом все данные:
Это все равно очень приблизительные данные, но хоть цифры адекватные, 45 мб/сек на localhost и 640 кб/сек на хостинге. Это сообщение отредактировал(а) sTa1kEr - 19.7.2007, 13:44 |
||||
|
|||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: 1 Всего: 5 |
Можно засечь час за который выгрузится буфер. Это и будет час скачки файла
|
|||
|
||||
| SergV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 4.8.2006 Где: Германия Репутация: нет Всего: 1 |
sTa1kEr, в первом приведённом коде значение получается с минусом, а второй код, у меня с ним на локалке и хосте выходит свыше 800-900 мб/сек, а если ещё раз делить на 1024, то до 700-800 кб/сек.
щас протестил свой канал но 10 разных тест страницах, скорость везде разная, от 83.75 Kb/sec до 1396.3 kb/s, вобщем непонятно, кто и как меряет. С моим DSL16000, 1396.3 kb/s както ближе, если учесть что качаю до 2,5 мб/сек. Блин, мне надо код который примерно определит скорость, чтобы определить, модем это, ISDN или скоростной нет. Вот и думай, как правильно это просчитать. Это сообщение отредактировал(а) SergV - 27.9.2007, 12:01 |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Могу только предположить, что это возможно в PHP 4, т.к. параметр в microtime() появился только в 5ом. Либо у вас время назад идет
Вполне возможно. Я бы даже сказал это ближе к истине, чем 45 мб/сек. Т.к. никакого чтения с диска не происходит, то это значение должно стремится к пропускной способности шины (в частности северного моста). Тоже логично... это очень примерный тест и к тому же многое зависит от загруженности сервера и пропускной способности канала. К тому же здесь не учитывается время отклика и размер данных слишком маленький. |
|||
|
||||
| SergV |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 4.8.2006 Где: Германия Репутация: нет Всего: 1 |
Точно, на локале у меня 4 пхп, а на хосте я этот код не проверял.
А как быть тогда с хостом, там у меня тоже примерно столько же кажет, или у меня с провайдером связь по северному мосту? ;) Просто уж слишком большая скорость получается. Ладно, я просто хотел сделать проверку на сайт, до загрузки страницы, чтобы от этого плясать с шаблоном. Это сообщение отредактировал(а) SergV - 28.9.2007, 10:37 |
||||
|
|||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
SergV, еще раз. localhost - это зацикливание компьютера на самого себя, при получении данных с localhost-а ничего не передается по сети, поэтому скорость канала в localhost измерять абсолютно бессмысленно, так же как и тестировать подобные скрипты на localhost.
С реальным, удаленным хостом цифры будут уже адекватные. Только учтите, что этот код для PHP 5. Для PHP 4 надо использовать microtime() без парамаметра. К примеру, как написано в мануале
Это сообщение отредактировал(а) sTa1kEr - 28.9.2007, 10:52 |
|||
|
||||
| SergV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 4.8.2006 Где: Германия Репутация: нет Всего: 1 |
sTa1kEr, так яже говорю про реальный хост, и то что у меня на локале, что на реальном хосте, практически одно и тоже. Может это связано с пхп, но всё равно, думаю разница должна быть заметная. чего не наблюдалось.
Ладно, попробую ещё раз без параметров, может и вправду из за этого проблема, тогда можно будет простую проверку на версию пхп сделать, чтоб коректно работал скрипт. sTa1kEr, спасибо за помощь. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |