繁体   English   中英

可以加快图像在php / imagick中的加载

[英]Possible to speed up image loading in php/imagick

我注意到在php $im = new Imagick($sFilename);图像加载到imagick( $im = new Imagick($sFilename); )中需要花费0.8秒的时间来获取8MB图像。 这对我来说似乎有点慢,所以我尝试了一个测试,而是使用file_get_contents读取了文件。 大约0.005秒。 更好。 tbh有点太好了,我想那儿有些缓存了吗?

但是我可以将同一个文件加载到imagick中十次,并且总是〜0.6秒。

我可以告诉file_get_contents以某种方式绕过系统缓存,以便更好地了解可以从硬盘驱动器检索8MB文件的原始速度吗?

有什么可以做的来加快imagick的速度吗? 还是0.6秒的操作时间完全正常?

该服务器在RAID 1中有两个7200rpm HP sata驱动器。

谢谢。

有什么可以做的来加快imagick的速度吗?

购买更快的CPU

还是0.6秒的操作时间完全正常?

是。

对我来说这似乎有点慢

但这似乎已经很长时间了。

我猜那里正在缓存吗?

您只是在猜测应该更快一些.....并且您正在将其与完全不同的操作进行比较。 file_get_contents只是从磁盘上读取文件中的字节。 从JPG创建图像意味着计算机必须从磁盘上读取字节,然后将它们从压缩数据中解码为实际图像数据。

如果要查看压缩过程中需要完成多少工作,可以通过以未压缩的格式写出图像来轻松查看此情况,例如

$imagick = new Imagick("./testImage.jpg");
$imagick->setImageFormat('BMP');
$imagick->writeImage("./output.bmp");

是的,这比HTTP请求进行处理的合理时间长。 这就是为什么不在网络服务器中运行Imagick是一个好主意,而是将其作为后台任务运行的另一个原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM