我发现使用 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/