Как написать быстрый парсер на PHP?

Написал многопроцессорный парсер на PHP, не устраивает скорость работы ~25 записей в секунду (что 50, что 200 процессов - не важно, всё равно выше 27 записей в секунду скорость не поднимается).
Примерный алгоритм следующий:
  1. в MySQL хранится список ссылок
  2. В консоли висит php-скрипт с бексонечным циклом, который через exec() запускает нужное число php-скриптов и передаёт им url'ы из базы

Что я делаю не так? Почему увеличение количества процессов не увеличивает скорость обработки данных?
  • Вопрос задан
  • 631 просмотр
Пригласить эксперта
Ответы на вопрос 4
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Так а скорости то хватает? Если предположить, что средний вес загружаемой страницы ~450кб, то для загрузки 25 таких страниц как раз нужно ~90 мбит/сек: 450кб * 25 = 11250кб/сек = 11,25мб/сек = 90мбит/сек.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
parallel (pthreads) - лучше: нет вариантов для PHP.
parallel is a parallel concurrency extension for PHP 7.2+.
Ответ написан
Noizefan
@Noizefan
Писать его на С++
Ответ написан
veshetu
@veshetu
web-dev
сайты быстро открываются?
объемы страниц/файлов какие?
можно из консоли запустить 10 php.
1-ый будет брать урл с id кончающимся на 1.
и так далее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы