![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| suxxor |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
1) InternetSetFilePointer
Я пытаюсь получить размер файла в сети вызвав:
2) InternetReadFile Нужно вычислить скорость скачивания в цикле чтения из сети:
Это сообщение отредактировал(а) suxxor - 11.12.2011, 17:40 |
||||
|
|||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Гм. Гонять указатель сетевого файла туда-сюда...
Слабо представляю себе, что именно делает InternetSetFilePointer, но судя по описанию, файл должен быть достаточно скачен, чтобы указатель попал в скаченное). Так определить длину файла не получится. Более того, сам Web-сервер не обязан присылать длину файла даже в заголовках HTTP-ответа. То есть действовать нужно без учёта длины файла. Для этого совсем не обязательно изначально знать размер файла. Скачивайте по 4 килобайта, оценивая скорость в каждом шаге цикла, пока не достигните конца файла (InternetReadFile как-то уж должен уведомить о том, что достигнут конец файла). Если же отдано меньше 4 к и не конец файла, допросите данных до 4 к. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
И не знаю... Быть может, Вам и хватает GetTickCount. Но сейчас скорости так выросли... Я бы смотрел в сторону более точных инструментов, скажем, QueryPerformanceCounter
. К тому же меня сильно смущает, что InternetReadFile как-то по-особому трактует HTML-файлы, и это не отключаемо((( Это сообщение отредактировал(а) feodorv - 12.12.2011, 08:53 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| suxxor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
А как сделать с QueryPerformanceCounter? Объясните
|
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Есть неплохая статья по таймингу: Измерение интервалов времени в Windows В принципе, всё то же самое, только надо учитывать частоту таймера:
Это сообщение отредактировал(а) feodorv - 12.12.2011, 18:11 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
https://bitbucket.org/skynowa/xlib/src/2d6d...ug/CxProfiler.h
https://bitbucket.org/skynowa/xlib/src/2d6d.../CxProfiler.cpp Это сообщение отредактировал(а) Alca - 12.12.2011, 18:22 |
|||
|
||||
| suxxor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
feodorv, stop (LARGE_INTEGER) чё за переменная?
Alca, чё это? Это сообщение отредактировал(а) suxxor - 12.12.2011, 19:52 |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Это сообщение отредактировал(а) Alca - 13.12.2011, 01:11 |
|||
|
||||
| suxxor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
Да не, я не понял. Мне нужно чтоб значение скорости (а не времени выполнения) генерировалось динамически (в каждом из циклов)
что то вроде! у меня не получается это ;( Это сообщение отредактировал(а) suxxor - 13.12.2011, 17:05 |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
скорость = расстояние / время |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Ну да. То есть:
Получаем скорость в bps (bits per second). Соответственно, * 1000.0 из вышеприведённого кода надо убрать... Плюс надо учесть, что скачивается не всегда 4096 байт (например, в конце файла). Это сообщение отредактировал(а) feodorv - 13.12.2011, 18:05 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |