0

我正在使用 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

请帮助我提高性能,以便它可以轻松处理巨大的负载。

谢谢。

4

0 回答 0