PHP TCPDF:生成图像非常慢

PHP TCPDF: emebdding images is very slow

我遇到了 TCPDF 的问题。 在 XAMPP 安装时,嵌入图像突然需要超过 10 秒。

示例代码如下:

    $image_file = __DIR__ . '/img/LOGO.jpg';
    $img = file_get_contents($image_file);

    // This line takes 11 secs
    $this->Image('@' . $img, 15, 5, 30);

这曾经以良好的速度运行良好。 现在突然变得很慢了。

有什么想法吗?

更新:我分析了代码并发现 tempnam 花费了很长时间。就像临时目录中的 65.000 个文件一样。这可能是问题所在吗?

分析代码后,发现问题与 TCPDF 库中调用的 tempnam 函数有关。它花了大约 20 秒。

深入 TCPDF 临时文件夹,发现其中有 65.000 个文件。这些临时文件由 TCPDF 创建但未清理。因此,在大量使用后,XAMPP 在需要写入该文件夹时性能会下降。

将这些临时文件移出后,一切似乎都很好!

另一种对我有用的解决方案是使用其余的图像功能设置在将图像写入 PDF 之前缩小图像

Image( $file, $x = '', $y = '', $w = 0, $h = 0, $type = '', $link = '', $align = '', $resize = false, $dpi = 300, $palign = '', $ismask = false, $imgmask = false, $border = 0, $fitbox = false, $hidden = false, $fitonpage = false, $alt = false, $altimgs = array() );

将调整大小设置为 true 并将 DPI 设置为 72 将我的 PDF 从 110 秒减少到 2.5 秒