imagick 的性能问题

发布于 2024-10-12 12:49:14 字数 921 浏览 7 评论 0原文

我使用 imagick 创建带角的缩略图。

以下是有趣的台词:

$background = 'white';
$image->cropThumbnailImage($width,$height);
$im = new Imagick(); 
$im->newImage($width, $height, $background); 
//$image->sharpenImage(50, 1); 
$image->roundCorners( $cornersSize, $cornersSize);
$im->compositeImage($image, Imagick::COMPOSITE_OVER, 0, 0); 
$im->setImageFormat('jpeg');
$im->flattenImages(); 
$image = $im;

在服务器上创建它需要 10 秒!

在小型笔记本电脑上,需要 1.5 秒(仍然很慢)。

我们该如何改进呢?

精度:

我仅使用一张图像重新启动代码:20148px x 1222px。在笔记本电脑上 10 秒,在服务器上 20 秒。

服务器:

笔记本电脑:

  • php5-imagick : 3.0.0~rc1-1build1
  • imagemagick : 7:6.6.2.6-1ubuntu1.1
  • ubuntu 10.10
  • 2048mo RAM 1333MHz DDR3
  • Intel Core i3-370M 2,4GHz, 3MB

服务器:

  • Intel Xeon (16 Mo Cache)
  • 8Go RAM (RDIMM)
  • 没有在线网站。

I user imagick to create thumbnails with corners.

Here are the interesting lines:

$background = 'white';
$image->cropThumbnailImage($width,$height);
$im = new Imagick(); 
$im->newImage($width, $height, $background); 
//$image->sharpenImage(50, 1); 
$image->roundCorners( $cornersSize, $cornersSize);
$im->compositeImage($image, Imagick::COMPOSITE_OVER, 0, 0); 
$im->setImageFormat('jpeg');
$im->flattenImages(); 
$image = $im;

It takes 10 seconds on a server to create it!

On a small laptop, it takes 1.5s (still slow).

How can we improve that?

Precisions:

I relaunch the code with only one image: 20148px x 1222px. 10 seconds on the laptop, 20s on the server.

The server:

The laptop:

  • php5-imagick : 3.0.0~rc1-1build1
  • imagemagick : 7:6.6.2.6-1ubuntu1.1
  • ubuntu 10.10
  • 2048mo RAM 1333MHz DDR3
  • Intel Core i3-370M 2,4GHz, 3MB

Server:

  • Intel Xeon (16 Mo Cache)
  • 8Go RAM (RDIMM)
  • no website online.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墟烟 2024-10-19 12:49:14

如果您的服务器是 Ubuntu 10.04/Debian 6,使用 Viruozzo,或者可能是其他虚拟化平台,或者可能只是多处理器系统,这可能是 ImageMagick 的 OpenMP 支持的错误。

在这些平台上使用 imagick PHP 扩展时,Imagemagick 可能会很慢。制作一张简单的图像需要几秒钟而不是几毫秒。

对我有用的解决方案:
http://tellgren.com/blog/2011/ 03/24/vps 上的 imagemagick 出现问题/

If your server is Ubuntu 10.04/Debian 6, using Viruozzo, or maybe other virtualization platforms, or maybe just multiprocessor systems, this MAY be a bug with the OpenMP support of ImageMagick.

Imagemagick may be slow with imagick PHP extension on theese platforms. It takes seconds rather than miliseconds to make a simple image.

The solution that worked for me:
http://tellgren.com/blog/2011/03/24/trouble-with-imagemagick-on-vps/

油饼 2024-10-19 12:49:14

虽然您可以使用 GPU 进行一些处理,但在本例中并未使用它。只有你的CPU。

您似乎正在执行一些不必要的步骤。这是什么问题:

$image->cropThumbnailImage($width,$height);
$image->roundCorners( $cornersSize, $cornersSize);

While you can use your GPU to do some processing, it is not used in this case. Only your CPU.

It seems that you are doing some unnecessary steps. What is wrong with this:

$image->cropThumbnailImage($width,$height);
$image->roundCorners( $cornersSize, $cornersSize);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文