【问题标题】:GraphicsMagick for Node.js (GM Module) performance用于 Node.js(GM 模块)性能的 GraphicsMagick
【发布时间】:2014-05-21 23:49:00
【问题描述】:

我看到 GraphicsMagick 使用 GM npm 模块的 Node.js 性能出奇地慢。

我有一个简单的 16px X 16px 图标,名为 icon16.png(320 字节)。我只是获取此 PNG 的缓冲区并使用 GM 将其输出到新缓冲区(换句话说,我只是调用 GM 并在不进行任何操作的情况下传递图像以查找性能问题)。

    var timeStart = parseInt(Date.now());
    var newBuffer = gm(icon16buffer, 'icon16.png')
        //.resize(8, 8)
        .toBuffer(function (err, buffer) {
            if (err) {
                next();
            }
            else {
                console.log(parseInt(Date.now()) - timeStart);
                send(200, buffer);
            }
        });
    };

这需要 175 毫秒(即 console.log 输出为 175)。为什么这么长?每次都必须从磁盘加载 C++ GraphicsMagick 库吗?注意:我在 Joyent 上使用 SmartOS。

【问题讨论】:

    标签: node.js png graphicsmagick


    【解决方案1】:

    gm 模块调用命令行工具。您可能会考虑改用graphicsmagick2,这是与 graphicsmagick 库的实际绑定。不幸的是,没有文档,因此您必须阅读源代码(不会太长)。

    【讨论】:

      【解决方案2】:

      您可以尝试比较用于图像处理的 Node.js 模块 - https://github.com/ivanoff/images-manipulation-performance

      对比示例:

        Found images:
        4198671-green-sea-view.jpg
        Beautiful-Sea-Pier-In-Chile-Hdr-Wide-Desktop-Background-Wallpapers-Beautiful-Sea-Wallpaper-.jpg
        Bluestone-valley-view_-_Virginia_-_ForestWander.jpg
      Found modules: canvas.js, gm-imagemagic.js, gm.js, lwip.js
      == START ==
      canvas.js : 4.001 img/sec; done in 7.498536 sec; minCPUidle: 96%; minFreeMem: 283Mb; MaxLoadAvg: 1.48
      gm-imagemagic.js : 1.206 img/sec; done in 24.88003 sec; minCPUidle: 96%; minFreeMem: 456Mb; MaxLoadAvg: 1.59
      gm.js : 1.536 img/sec; done in 19.528429 sec; minCPUidle: 96%; minFreeMem: 490Mb; MaxLoadAvg: 1.84
      lwip.js : 0.406 img/sec; done in 73.891623 sec; minCPUidle: 96%; minFreeMem: 157Mb; MaxLoadAvg: 1.56
      == DONE ==
      

      在此示例中,您可以看到,就图像处理速度而言,canvas 模块是最好的(在作者的本地计算机上每秒约 4 张图像)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-31
        • 1970-01-01
        • 2013-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多