【发布时间】:2016-04-03 12:00:04
【问题描述】:
我有一个以前可以正常工作的报告生成 PHP 程序。我在程序中使用了 2 个第 3 方库:Google 图像图表库(如果我在 url 中提供值,则返回图像)和 tcpdf(用于 pdf 生成)。我使用 mysql 而不是 mysqli 进行查询。页面中有很多查询和循环。
在生成报告的时间不到 3 分钟之前,我使用 ajax 调用来生成报告,一旦文件生成完成,该报告就会给出完整的消息。这个程序将pdf文件保存在一个文件夹中,我有一个同名的链接来下载文件。
最近当我检查它没有正确生成时。
错误是 TCPDF 无法获取图像。这是因为谷歌图表库没有正确返回图像。当我在浏览器中访问图表 url 时,它会毫无问题地为我提供图像,但如果我在 php 文件中的图像 src 中提供它,它不会显示。因此,我决定使用 file_get_contents、file_put_contents 等函数将文件保存在文件夹中,并将其链接到图像 src 中。这部分现在工作正常,我可以看到图像。
但现在的问题是生成报告需要花费大量时间,即使在本地环境中也是如此。我试图在没有图表打印的情况下生成报告,但即便如此它也需要时间。在这之间总共需要 25 分钟,现在生成一个 40 页的 pdf 文件需要将近 10 分钟。
我真的不知道为什么要花这么多时间。所有这些以前都工作得很好,现在它不起作用。唯一改变的是谷歌图像图表库,但现在即使没有(评论该部分并检查)这也需要时间。
如何加快速度?有什么方法可以检查程序的哪个部分慢。
尝试过 xdebug,但它的输出文件超过 400 mb,webgrind 无法处理它。
请帮忙。
【问题讨论】:
-
恕我直言,您在这个问题上没有给我们太多帮助。请考虑对其进行编辑以提供更多详细信息。
-
请立即查看。谢谢。
标签: php mysql performance tcpdf