Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
узнать скорость инет соединения используя пинг |

13.06.2010, 20:57
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
узнать скорость инет соединения используя пинг
Возможно ли узнать скорость инет соединения используя эхо запрос?
Если можно установить размер нагрузки ICMP пакета до 65 000 байт и замерять время прохождения ответа, будет ли это реальной скоростью подключения?
|
|
|

13.06.2010, 21:18
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
не советовал бы так тестить. потому что ICMP мало надежный протокол, при этом он менее приоритетный и может фаером рубиться.
Вообще быстрее просто приконнектится к серваку и запросить страницу большую.
|
|
|

13.06.2010, 21:26
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
я пробовал замерять момент между началом загрузки страницы и нулевым размером буфера через таймер в отдельном потоке
Код:
Procedure timer(it.l)
Repeat
Delay(1)
speedn.l = speedn.l + 1
Until speedn.l = 10000
EndProcedure
InternetReadFile_(hURL,@Buffer, Len(Buffer), @Bytes)
CreateThread(@timer(), 0)
If Bytes = 0
chk.d = Len(res)/speedn.l
Debug Str(chk.d)+" Kb/s"
EndIf
но результат очень странный, при скорости 4 Мбит/с выдало в 2 раза меньше
может дело в используемом сервере?
побывал грузить длинные манулы с ripn.net и соглашение с гугла 
|
|
|

13.06.2010, 21:31
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Procedure timer(it.l)
Repeat
Delay(1)
speedn.l = speedn.l + 1
Until speedn.l = 10000
EndProcedure
Если Delay это аналог Sleep то процедура твоя половину времени спит
ЗЫ Могу и ошибаться
|
|
|

13.06.2010, 21:36
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
Сообщение от GhostOnline
Если Delay это аналог Sleep то процедура твоя половину времени спит
ЗЫ Могу и ошибаться
спит 1 мс в отдельном потоке а потом плюсует единицу в переменную, это для замера к-ва мсок с начала загрузки, код на PureBasic, я ток кусок привел, работает норм
я думаю дело в сервере, гугл и рипн режут скорость в зависимости от того какую страницу запрашивает юзер, мне нужен сервер который дает минимум 10 Мбит/с на загрузку страниц
|
|
|

13.06.2010, 21:41
|
|
Новичок
Регистрация: 11.07.2009
Сообщений: 20
Провел на форуме: 39998
Репутация:
2
|
|
А если возложить эту задачу на сервис типа 2ip.ru?
|
|
|

13.06.2010, 21:43
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
Сообщение от Faost
А если возложить эту задачу на сервис типа 2ip.ru?
там каптча, да и изучать как оно работает нет времени
|
|
|

13.06.2010, 21:46
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
спит 1 мс в отдельном потоке а потом плюсует единицу в переменную, это для замера к-ва мсок с начала загрузки, код на PureBasic, я ток кусок привел, работает норм
Я тебе к тому, что твоя процедура может неправильно считать время
Я сделал тривиальный тест на дельфи:
var
old : Cardinal;
i :Integer;
begin
old := GetTickCount;
i := 0;
while i < 1000 do
begin
Sleep(1);
Inc(i);
end;
ShowMessage(IntToStr(GetTickCount - Old));
Все как у тебя: задержка, инкремент переменной
Так вот, в сообщении выдало 1953. Т.е. этот цикл выполнялся в два раза дольше чем должен был (по твоим рассуждениям)
Отсюда и у тебя неправильные результаты, типа скорость в 2 раза ниже.
PS Это предположение
|
|
|

13.06.2010, 21:54
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 23
Провел на форуме: 659771
Репутация:
33
|
|
нет, все четко, 10 секунд в цикле на глаз 10 секунд
так понял что на делфи гдет лишнее время теряется
у мя четко 10 сек
Последний раз редактировалось PabloPicasso; 13.06.2010 в 21:59..
|
|
|

13.06.2010, 21:57
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Inc - обычный инкремент.
Т.е. увеличение целочисленной переменной на единицу
Тоже самое что и i := i +1;
Или те кто на бэйсике даже не знают что такое инкремент?
нет, все четко, 10 секунд в цикле на глаз 10 секунд
по твоему коду у тебя не может быть больше 1000 =)
Не пойму мне видео снять еще?
Зачем мне врать то
PS От твоего поста я еще больше убедился в своей правоте
если чет печатает в ГУИ то там нехилая задержка должна быть, хотя дела это не меняет, в коде i может быть от 0 до 1000
Сначала вычисляется GetTickCount - Old, и только потом в дело вступает ГУИ и выводит что уже было вычислено. Да и все равно, задержка не может быть такой большой
так понял что на делфи гдет лишнее время теряется у мя четко 10 сек
Код в студию! Видать ты неправильно время измерил.
Не забывай что во время выполнения процедуры происходит переключение контекста. Ты его не учитываешь, а ведь время то на него уходит
Последний раз редактировалось GhostOnline; 13.06.2010 в 22:08..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|