Запустите один и тот же паук под несколькими оболочками, будет ли он быстрее? - PullRequest
0 голосов
/ 29 августа 2018

Например, у меня есть паук, который сканирует некоторую информацию о телефоне с веб-сайта.

Обычно я просто открывал cmd и запускал скрипт.

Так будет ли этот сценарий использовать все ресурсы компьютера для запуска сценария (процессор, пропускная способность Интернета)? Я имею в виду, что меня спросил коллега: «Будет ли быстрее, если я открою несколько cmd и запуском того же скрипта?».


Итак, под 1 ПК , 1 cmd + 1 spiderA против several *(1 cmd + 1 spiderA), будет ли последний быстрее или последняя операция не нужна?

Другая аналогия (если приведенное выше описание все еще неясно):

Допустим, у компьютера 100% ресурсов.

если 1 cmd + 1 spiderA займет всего 20%, то 2* (1 cmd + 1 spiderA), последняя комбинация займет 40% или разделится на 10% каждая?

Цель этого вопроса - убедиться, что паук может использовать все ресурсы 1 ПК.

1 Ответ

0 голосов
/ 29 августа 2018

В большинстве случаев узким местом обхода является пропускная способность / задержка, и вы ничего не получите, запустив несколько экземпляров одного и того же паука по одному и тому же соединению, поскольку scrapy уже параллельна и будет занимать столько соединений, сколько сконфигурировано для (CONCURRENT_REQUESTS и тому подобное). Многопоточность / многопроцессорность могут стать полезными, если вы, например, сканируете из кеша достаточное количество кода, а код, не связанный с io (html-разбор и т. Д.), Становится труднее, но в целом я бы сказал, что это будет преждевременной оптимизацией.

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