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
巨大な負荷を簡単に処理できるように、パフォーマンスを改善するのを手伝ってください。
ありがとう。