0

GraphicsMagick を使用して複数の画像レイヤーに色を付け、それを構成して単一の画像を形成し、それを返しています。

ローカルでは、1 つのレイヤー (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 人の同時ユーザー負荷のみで負荷テストを実行した場合。単一レイヤーのパフォーマンスは、単一レイヤーで約250msに低下します。

以下は私のサーバー構成です:

グラフィックマジック: 1.3.26

OS:ウィンドウサーバー 2012

プロセッサ: Intel(R) Xeon(R) 2.40 GHz (2 プロセッサ)

メモリ: 128GB

巨大な負荷を簡単に処理できるように、パフォーマンスを改善するのを手伝ってください。

ありがとう。

4

0 に答える 0