我正在使用 GraphicsMagick 为多层图像着色并将其组合成单个图像并返回它。
在本地,处理单层 (1000 x 1000)大约需要30 毫秒。
以下是图片。
以下是我的着色代码:
var colorizeImage = function(imageName, hex, callback) {
//Setting image path.
var sourceImgSrc = getSourceImgSrc(imageName); //Source image path
var convertedImgSrc = getConvertedImgSrc(imageName); // New image path
var hslObj = getConvertedHSLFromHex(hex);
var hue = hslObj.h;
var saturation = hslObj.s;
var lightness = hslObj.l;
try{
//Query
var modulateImg = "gm convert -resize 500 "+sourceImgSrc+" -modulate "+lightness+","+saturation+","+hue+" -limit memory 100KB "+convertedImgSrc;
exec(modulateImg, function(err) {
if (err) {
callback('', err);
}
else{
callback(convertedImgSrc);
}
});
}
catch(err){
callback('', err);
}
}
但是,当我将它托管到我的服务器并执行负载测试时,只有 50 个并发用户负载。单层的性能下降到单层的250 毫秒左右。
以下是我的服务器配置:
GraphicsMagick: 1.3.26
操作系统:窗口服务器 2012
处理器: Intel(R) Xeon(R) 2.40 GHz(2 个处理器)
内存: 128GB
请帮助我提高性能,以便它可以轻松处理巨大的负载。
谢谢。