2016-11-21 2 views
0

У меня есть задача обходить 100000 URL-адресов и сохранять данные на листе excel & хранить изображения в отдельных каталогах, я написал скрипт с использованием Simple HTML DOM и PHP Excel, он обрабатывает 4-URL-адреса за 1 минуту, но постепенно замедляется со временем проходит больше & больше.Как сделать длинный скрипт PHP быстрее?

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

Пожалуйста, дайте мне знать, как ускорить выполнение, чтобы сделать больше & за меньшее время.

Спасибо.

+1

Вам нужно будет поделиться своим кодом, чтобы получить какие-либо реальные советы. –

+0

Вы должны подумать о способе установки всех сайтов, которые должны быть обработаны, и запускать сканер параллельно, потребляя очередь. – Tom

+0

Пожалуйста, сообщите больше о вашей проблеме. Если у вас есть список из 100 000 URL-адресов, чтобы захватить фронт. Вы можете использовать что-то еще, чтобы захватить содержимое каждого, а затем обработать позже. – Progrock

ответ

0

Ваше ограничение в узком месте, вероятно, будет латентностью сети, если вы запустите локальный, как вы сказали. Ваш процесс будет ждать ответа, прежде чем он сможет перейти к следующему URL-адресу. Чтобы максимально использовать локальное сетевое соединение, вы можете одновременно запускать несколько процессов.

Я не уверен, что это то, что вы имели в виду с «дочерним процессом», но вы можете делать многопоточность в php (see question). Или просто запустите свой php-скрипт несколько раз в командной строке с частью рабочей нагрузки.

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

Это не стоит ожидать, что он будет работать только на одном сервере.

Смежные вопросы