SalatProduction: трудно что-то подсказать, данные вы не показываете, и что сравнивается.
Ну как вариант почему бы не разбить первоначальные данные по 1 миллиону хотя бы.
Уже сократит потребление памяти в 5 раз, только цикл надо будет сделать на 5 повторов.
Ну это из разряда бреда совет, без понимая что у вас там происходит :)
Ramm: ну это вы уже в цикле можете получить все что хотите.
Главное основной запрос с правильным количеством полей сделать, а дальше уже без разницы что будете делать.
SalatProduction: ну это уже зависит от того что проверить и как проверить.
Если размер данных не очень большой, то вполне можно успеть.
Судя по тому что вы смогли это всё загрузить в скрипт, там немного и влезло в раму.
Так что дальше зависит от того что это и как написать.
Из советов могу сказать что чем больше данных входных собрать, тем быстрее всё выполнится.
Т.е. во время цикла/циклов проверки данных стараться делать минимум запросов в базу/апи/кешам и т.д.
Чисто вычисления - тогда будет летать.
Т.е. до того как сравнивать как раз вытаскиваете из базы все что по ходу понадобится.
В данном случае один большой запрос вначале гораздо эффективне чем куча простых точечных селектов к базе например.
Между делом там еще вызывается act=check с _sig
Я так полагаю это проверка на то что ваш браузер поддерживает загрузку. Т.е. не обязательная вещь.
А потом делается OPTIONS запрос на ссылку загрузки, и только потом POST.
Но возможно все запросы обязательны. Больше тут никаких секретов нет точно.
Станислав Куделко: я написал в ответе где взять стартовый _sig. Точнее там целая ссылка на загрузка, а не только _sig.
Дальше процесс вы сами уже знаете.
Этот запрос уходит при нажатии на кнопка загрузить/сменить ковер.
В ответе html + js
Там есть средства для генерации словарей https://github.com/heromantor/phpmorphy/tree/master/bin
Но я так полагаю надо неплохое количество данных чтобы слово добавить.
И по одному слово не вариант добавлять.
Вижу что словари строятся через .exe файла еще.
Так что не уверен что сервер сам сможет.
В общем надо ковырять.
Ну как вариант почему бы не разбить первоначальные данные по 1 миллиону хотя бы.
Уже сократит потребление памяти в 5 раз, только цикл надо будет сделать на 5 повторов.
Ну это из разряда бреда совет, без понимая что у вас там происходит :)