0

我们使用 GM 进行图像压缩,并观察到缩放和采样函数之间的显着性能差异,我们假设这样做是一样的。

对 68k 图像使用缩放功能时,一个进程可能会消耗所有内核(12 核,2.4G Hz 机器)的所有 cpu 时间,吞吐量为 65/秒,响应时间平均为 469 毫秒,top 命令加载为11点左右,cpu使用率接近100%

在同一环境下使用示例函数,24个进程协同工作,吞吐量接近1000/秒,平均响应时间为37毫秒,top命令负载在3左右,cpu使用率在50%到80%之间波动

这两个功能的官方文档很简单,如下:

使用像素采样算法对图像进行采样调整大小:

空样本 ( const Geometry &geometry_ )

zoom 缩放(调整大小)图像到指定大小:

无效缩放 ( const Geometry &geometry_ )

图像处理后的效果类似,但差别很大。

  1. 谁能解释使用这两个功能的不同情况,因为由于性能问题,我们可能会选择样本而不是缩放

  2. 此外,谁能告诉我为什么缩放如此耗时。

4

1 回答 1

0

由于 GraphicsMagick 的性能较低,可能存在一些与系统相关的问题,例如缓存行抖动。-sample 选项使用简单的点采样,其中输出图像中的每个点从输入图像中选择一个点。-zoom 选项使用指定的过滤器(-filter)进行水平/垂直过滤,因此它提供高质量(取决于过滤器)。对于非常大的图像,我建议使用 -scale,它是一种窗口过滤器,它产生的结果几乎与 -zoom 一样好,但只使用一个 CPU 内核并且仍然非常快。

于 2013-01-22T03:06:17.640 回答