Задать вопрос
@gitdev

Нужно ли выполнять асинхронные запросы чтоб ускорить выполнение кода на PHP?

Есть тяжеловесный цикл который выполняется 8 секунд. В теле цикла происходит обращение к таблицам базы данных, перебор результатов.
После цикла массив данных пачкой возвращается пользователь(JSON, REST API).

Вопрос: как можно ускорить получение результат, помогу ли асинхронные запросы например используя библиотеку AMP.
Если асинхронные запросы помогу, какой тип асинхронных запросов выбрать для решения задачи:
Event Loop, Promises, Coroutines, Iterators, Streams

foreach ($this->config->getProductClasses() as $code => $className) {
                $product->$code = $className::init([
                    'container' => $this->container,
                    'code' => $code,
                    'em' => $this->container->get($this->config->getConnectionName()),
                ])->findByProductId($resource->productId);
            }
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Когда я вижу такие вопросы, мне хочется плакать.
"У меня микроскоп показывает только грязь на пальцах. У меня получится посмотреть вакуоли, если я приделаю к микроскопу ветряной двигатель?"

Если код работает медленно, то надо не выдумывать какие-то фантазии про асинхронные запросы, а ускорить выполнение кода. Который должен выполняться максимум за 0.008 секунды
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В теле цыкла происходит обращение к таблицам базы данных,
Запросы в цикле - зло, нельзя заниматься фигней ради фигни. Переписать код на 1 нормальный запрос, и уже с выборкой работать. Тогда код будет выполняться за приемлемое время и никаких костылей не понадобится. Понимаю что "так проще". Но так делать нельзя.

ЗЫ: Встал цыган на цыпочки и цыкнул на цыпленка в цыкле... ))
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы