Проблема со скоростью парсинга

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
bez-proxy.png
Вот так выглядит тайминг при парсинге в 1 поток зеннопостером
python.png
а вот скриптом на питоне, сайт один и тот же, обработка результата такая же - несколько раз результат проверяется регулярками на наличие различных ошибок при работе с прокси и 2 регулярками получаем результат
почему такие паузы между запросами? какие действия могут сделать такую задержку?
версия последняя, парсинг гет запросом, браузер отключен, список для парсинга и результат лежат на ссд, кэш на диске в оперативе
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
Для более точного примера, парсинг m.mail.ru, без лишних действий, шаблон выглядит вот так
shab-mail.png
тайминг запросов вот такой
mail.png
почему такие паузы между запросами?
или только у меня так, кому не влом проверьте у себя, шаблон прикладываю
 

Вложения

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 285
Благодарностей
2 730
Баллы
113
Чем мерили? Сам хочу так померить :-)

Работает примерно вот так:
GET/POST запросы работают в постере примерно таким образом.
ZennoPoster.exe формирует запрос к ResourceDownloader.exe, потом в цикле с первой паузой в 400мс, потом по 200мс, опрашивает ResourceDownloader, обработан ли запрос.
В python пауз нет, поэтому быстрее.
В постере так сделано, чтоб меньше грузить проц, т.к. обычно ответ приходит либо в первые 400мс либо позднее, особенно при работе через прокси.
Сейчас логику исправил немного, должно быть быстрее со следующего билда.

Так же по скринам видно, что трафик на отправку у питона больше,а прием меньше чем у постера, надо заголовки сравнивать, еще дополнительно.
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
прога HttpAnalyzer
да, там на первом скрине питона запрашивалась одна страница, а в зенно разные, поэтому разница в размерах ответов
вот на питоне m.mail.ru
mail-new.png
видно, что между запросами паузы практически нет, а в зенно пауза в 2 раза дольше, чем время на сам запрос
в итоге разница в скорости парсинга небольших страниц в 5-10 раз
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
Работает примерно вот так:
GET/POST запросы работают в постере примерно таким образом.
ZennoPoster.exe формирует запрос к ResourceDownloader.exe, потом в цикле с первой паузой в 400мс, потом по 200мс, опрашивает ResourceDownloader, обработан ли запрос.
В python пауз нет, поэтому быстрее.
В постере так сделано, чтоб меньше грузить проц, т.к. обычно ответ приходит либо в первые 400мс либо позднее, особенно при работе через прокси.
Сейчас логику исправил немного, должно быть быстрее со следующего билда.
.
может вынести эти 400мс и 200мс как настройку? по процу запаса много - запускаю 150 потоков, получаю 50-60% нагрузку на проц, а скорость парсинга совсем не годится - канал хавает всего на 5мбит
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
а, блин, все равно размер ответа меньше получился почему-то :-), но думаю и так понятно что смысл все равно не в этом
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 285
Благодарностей
2 730
Баллы
113
ok, посмотрим.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)