当前位置: 首页 > 知识库问答 >
问题:

可以在php/imagick中加速图像加载

孙化
2023-03-14

我注意到,在php中将图像加载到imagick($im=newImagick($sFilename);)需要0.6秒才能获得8MB的图像。这对我来说似乎有点慢,所以我尝试了一个测试,改为使用file\u get\u contents读取文件。大约0.005秒。较好的有点太好了tbh,我想那里有一些缓存

但是我可以将相同的文件加载到Imagick中十几次,并且总是0.6秒。

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

有什么办法可以加快imagick的速度吗?或者该操作的0.6秒是否完全正常?

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

谢谢

共有1个答案

云韬
2023-03-14

有什么办法可以加快imagick的速度吗?

购买更快的CPU

还是这个操作0.6秒是完全正常的?

这对我来说似乎有点慢

但这似乎需要很长时间。

我猜那里发生了什么事?

你只是在猜测有些东西应该更快。。。。。你把它比作一个完全不同的手术。file\u get\u内容只是从磁盘读取文件中的字节。从JPG创建图像意味着计算机必须从磁盘上读取字节,然后从压缩数据中将其解码为实际图像数据

如果你想知道在压缩期间有多少工作要做,你可以通过以未压缩的格式写入图像来轻松地看到这一点。

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

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

 类似资料:
  • 当我通过VS代码运行我的网页时,我的所有图片都会显示出来,但由于某种原因,当我通过localhost运行网页时,没有任何图片或CSS被发送。这是我下面的代码,任何帮助都将不胜感激。我曾试图在网上找到解决方案,但迄今为止似乎没有任何效果。 这是我的文件结构

  • 我面临毕加索无法快速加载图像的问题。 有3个显示左、中、右图像。在快进/后退时,对于给定的时间点,选择左、中、右并显示在三个框中。 这是初始化。缓存是100MB以及99MB的 窗口移动的图像数是3000。所以我将图像预加载为 平均图像大小为10KB-320x180,因此达到35MB,小于99MB。 当快速循环工作时,许多图像是(来自)和(来自),但在几个快速循环之后,3个图像冻结或变得非常慢。此时

  • 问题内容: 我正在编写一个脚本,用户可以在其中选择一系列数据,然后从服务器中获取一堆图像(超过150张),然后循环通过它们来制作电影。我想知道的是在移动图像槽时加载防止滞后的最有效方法。 目前,我正在使用Ajax从服务器获取图像,并将其存储在JavaScript上的Image对象数组中。在HTML中,我有一个div标签,希望在其中放置图像。在数组中创建所有Image对象(并设置其适当的src)后,

  • 问题内容: 我已经在PHP中构建了一个小型Web应用程序,用户必须首先登录。一旦他们登录,我打算在其“个人资料”中显示一个小缩略图。 我必须确保图像小于特定尺寸以节省空间,或者确保图像具有特定分辨率,或者两者兼而有之,甚至可能使用诸如image magick之类的东西来缩小图像。 不确定目前最好的方法是什么,欢迎提出任何想法。 另外,我一直在尝试确定将图像存储为MySQL表中的Blob还是单独存储

  • 下面是我的代码: 只是一个加载图像的文件。 我得到以下错误: 以下是完整的代码:

  • 我有高塞拉操作系统-版本10.13.6 PHP版本:PHP 7.1.9 当我尝试做命令总是出现这样的错误: PHP启动:无法加载动态库'/usr/本地/php5-7.1.9-20170914-100859 /lib/php/extensions/no-debug-non-zts-20160303/imagick.so'-dlopens(/usr/本地/php5-7.1.9-20170914-100