производительность веб-сканера - PullRequest
1 голос
/ 13 сентября 2010

Мне интересно знать в очень общей ситуации (самодельный любитель веб-поиска), какова будет производительность такого рода. Более конкретно, сколько страниц может обработать сканер.

Когда я говорю, что «домашний напиток» принимает это во всех смыслах, процессор Core 2 с частотой 2,4 ГГц, написанный на Java, скорость интернета 50 Мбит и т. Д.

Любые ресурсы, которыми вы можете поделиться в этом отношении, будут высоко оценены

Большое спасибо,

Carlos

Ответы [ 3 ]

5 голосов
/ 13 сентября 2010

Прежде всего, скорость вашего компьютера не будет ограничивающим фактором; Что касается соединения, вы должны искусственно ограничить скорость вашего сканера - большинство сайтов будут запрещать ваш IP-адрес, если вы начнете их использовать. Другими словами, не сканируйте сайт слишком быстро (10+ секунд на запрос должно быть в порядке с 99,99% сайтов, но переходите ниже этого уровня на свой страх и риск).

Итак, хотя вы могли бы сканировать один сайт в нескольких потоках, я бы предложил, чтобы каждый поток сканировал отдельный сайт (проверьте, не является ли он также общим IP-адресом); таким образом, вы могли бы насыщать свою связь меньшим шансом быть заблокированным на паутине.

Некоторые сайты не хотят, чтобы вы сканировали части сайта, и есть часто используемый механизм, которому вы должны следовать: файл robots.txt . Прочитайте связанный сайт и реализуйте это.

Обратите внимание, что некоторые сайты вообще запрещают любое автоматическое сканирование; в зависимости от юрисдикции сайта (ваша также может применяться), нарушение этого может быть незаконным (вы несете ответственность за то, что делает ваш сценарий, «робот сделал это» даже не оправдание, а тем более защита).

2 голосов
/ 13 сентября 2010

По моему опыту, в основном делая скребки сайта, загрузка сети всегда является ограничивающим фактором. Обычно вы можете перенести анализ страницы (или хранилище для последующего анализа) в другой поток за меньшее время, чем потребуется для загрузки следующей страницы.

Итак, выясните, в среднем, сколько времени занимает загрузка веб-страницы. Умножьте это на количество потоков, загружаемых вами до тех пор, пока оно не заполнит пропускную способность вашего соединения, усредните скорость любого данного веб-сервера, и математика будет достаточно очевидной.

0 голосов
/ 13 сентября 2010

Если ваша программа достаточно эффективна, ваше интернет-соединение будет ограничивающим фактором (как сказал Роберт Харви в своем ответе).

Однако, делая это с домашним интернет-соединением, вы, вероятно, нарушаете условия обслуживания вашего провайдера. Они будут контролировать его и в конечном итоге заметят, если вы часто превышаете их разумную политику использования.

Более того, если они используют прозрачный прокси, вы можете забить их прокси до того, как достигнете предела их загрузки, поэтому будьте осторожны - убедитесь, что вы НЕ проходите через прокси вашего провайдера, прозрачный или иным.

Для большинства пользователей интернет-провайдеры настроены на умеренный уровень просмотра с несколькими крупными операциями потоковой передачи (видео или другие загрузки). Массовый уровень крошечных запросов с сотнями ожидающих сразу, вероятно, не сделает их прокси-серверы счастливыми, даже если он не использует большую пропускную способность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...