У меня есть программа генерации отчетов PHP, которая раньше работала нормально. Я использовал две сторонние библиотеки в программе: библиотека графических карт Google (возвращает изображение, если я поставляю значения в url) и tcpdf (для создания pdf). Я использую mysql не mysqli для запросов. На странице есть много запросов и циклов.TCPDF занимает 10 минут, чтобы сгенерировать 40-страничный pdf-файл
Прежде чем использовать для создания отчета менее 3 минут, я использую вызов ajax для генерации отчета, который дает заполненное сообщение после завершения создания файла. Эта программа сохраняет PDF-файл в папке, и у меня есть ссылка с тем же именем, чтобы загрузить файл.
Недавно, когда я проверил, что он не работает должным образом.
Ошибка была TCPDF неспособной получить изображение. Это произошло из-за того, что библиотека графиков google не вернула изображение должным образом. Когда я получаю доступ к графику url в браузере, он дает мне изображение без каких-либо проблем, но если я дам его в изображении src внутри php-файла, его не покажут. Поэтому я решил сохранить файл в папке с помощью таких функций, как file_get_contents, file_put_contents и связать их с изображением src. Эта часть теперь работает правильно. Я вижу изображение.
Но теперь проблема заключается в том, что для создания отчета требуется много времени, даже в локальной среде. Я попытался создать отчет без графика, но даже тогда его время. В промежутке времени было всего 25 минут, и теперь он приблизился к 10 минутам, чтобы создать 40-страничный pdf-файл.
Я действительно не знаю, почему его так много времени. Все это отлично работало до этого и теперь не работает. Единственное, что изменилось, это библиотека графических карт Google, но теперь даже без нее (прокомментировала эту часть и проверила), что также потребовало времени.
Как ускорить это? Есть ли способ проверить, какая часть программы медленная.
Пробовал xdebug, но его выходной файл более 400 мб, а webgrind не может его обработать.
Пожалуйста, помогите.
С уважением, вы не дали нам много работы в этом вопросе. Пожалуйста, подумайте над редактированием, чтобы дать более подробную информацию. –
Пожалуйста, проверьте сейчас. Спасибо. –