| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Массовый опрос существования файлов |
| Автор: Isaev 30.1.2011, 06:57 | ||
| Дан сервер с парой десятков файлов, имена сформерованы рандомно по маске 'Name_00000000.rar' .. 'Name_FFFFFFFF.rar'. Требуется максимально быстро найти названия файлов! Делаю так:
Работает, но по скромным подсчётам 13 лет для полного перебора. PS: при обращении к несуществующему файлу сервер редиректит на свою страницу с сообщением 404. |
| Автор: Addmin 30.1.2011, 11:36 |
| Мне кажется, что постановка задачи неверна. Серверу - серверное. Сделайте cgi-программу, которая будет заниматься проверкой файлов на сервере и выдавать список файлов в любом удобном виде, и просто получайте этот список из своей локальной программы. P.S. И так ли уж нужна проверка архива на первую R? Может просто искать файлы по маске "Name*.rar"? |
| Автор: Isaev 30.1.2011, 16:36 | ||||||
В чём разница?
Речь идёт не о своём сервере... Т.е. я cgi туда же всё равно залить не смогу, потому не смогу получить список, как из локальной программы! Или я не совсем понял ход Вашей мысли? Тогда КАК?
Вполне, только снова КАК? У меня на считывание 1 байта и на запрос имени разница по времени не получилась. |
| Автор: Isaev 30.1.2011, 16:58 |
именно... стал бы я так извращаться на своём |
| Автор: Isaev 31.1.2011, 20:51 |
| Больше идей ни у кого нету? |
| Автор: Snowy 1.2.2011, 01:54 |
| Совет банальный как банан - в 100 тредов задача займет в 100 + (X/K) раз меньше времени Где X - количество файлов, К - количество вариантов. Основное время занимает ответ от сервера. Так что 1 запрос и 100 одновременных запросов будут выполняться примерно одинаковое время. Единственная проблема - могут забанить. Впрочем, в случае одного треда это не менее реально. Также не обязательно тянуть сразу файл. Можно сначала запросить Head. И, если информация о файле устраивает, то тянуть уже файл, а не тягать 404-ю страницу каждый раз целиком. Ну какой смысл тянуть всю страницу? 404? Всё, брось каку. Не нужно читать файл (InternetReadFile). Он не вкусный. |
| Автор: Isaev 1.2.2011, 03:31 | ||
Ну это ясно, остаётся только потестить какую нагрузку выдержит сервер... Вот про HEAD не знал, спасибо... Буду на досуге мучить дальше |