Имею экшен в конроллере Симфони.
Экшен должен получить данные из Доктрины, натравить на них небольшую функцию-форматтер, и отдать на в Эксель райтер.
Данных - 20 тысяч строк.
О том, что если получать данные через getResult, то время обработки занимает 35 сек против 6 для getArrayResult() я молчу. Но что меня реально заставило поломать голову, так это профайлинг двух никак не связанных между собой операций:
Выполнение последнего пункта занимает 8 секунд.
Выполнение последнего пункта занимает 12 секунд.
Не, общими усилиями разобрались-таки в итоге.
Но поначалу я конкретно подсел на измену.
Экшен должен получить данные из Доктрины, натравить на них небольшую функцию-форматтер, и отдать на в Эксель райтер.
Данных - 20 тысяч строк.
О том, что если получать данные через getResult, то время обработки занимает 35 сек против 6 для getArrayResult() я молчу. Но что меня реально заставило поломать голову, так это профайлинг двух никак не связанных между собой операций:
PHP:
$data = $query->getArrayResult();
$formatted = $this->formatter($data);
$this->excelHelper($formatted);
PHP:
$formatted = $this->formatter($query->getArrayResult());
$this->excelHelper($formatted);
Не, общими усилиями разобрались-таки в итоге.
Но поначалу я конкретно подсел на измену.