node.js - GraphicsMagick for Node.js(GM 模块)性能

标签 node.js png graphicsmagick

我发现使用 GM npm 模块的 GraphicsMagick for 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。

最佳答案

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

关于node.js - GraphicsMagick for Node.js(GM 模块)性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795669/

相关文章:

javascript - 如何从 Node.js 客户端访问 Realm 移动平台?

javascript - 在 Javascript 中创建其他文件所需的模块?

rest - 使用 grails.plugins.rest.client.RestResponse 获取 img/png

php - 在 PHP 中合并两个带有透明胶片的图像

delphi - 为什么使用 TPicture 时 PNG 图像的透明度会丢失?

bash - PSD 到 PNG 的转换不匹配

c++ - 如何使用 GraphicsMagick C++ API 找到 PNG 图像的大小?

node.js - 按日期范围查询 Sequelize 中的列字段

javascript - 为什么我的 node-oracledb execute Promise 解决所需的时间稳步增加?

c++ - 我怎样才能知道使用 graphicsmagick 读取图像的 jpeg 质量