M.C.P.C. (Mamesibori Creation Plus Communication)

印刷屋から五反田のWeb屋に転職したCLのブログです。

Illustrator用JavaScriptをJSLintとJSHintによる整形を参考にして修正する

http://www.iwashi.org/archives/2540:マシンを買い換えたくなってくる、DTP向けIllustratorベンチマークスクリプト - やもめも

(引用)

var start = new Date().getTime();
documents.add(DocumentColorSpace.RGB,3370,2284);
mColor = new RGBColor();
 
for (b = 0; b<16; b++)
{
mColor.red = b*14;
mColor.green = b*12;
mColor.blue = b*10;
for (i = 0; i<19266; i++)
{
a = Math.floor(i/114)
tObj = activeDocument.pathItems.rectangle(b+20+(i-a*114)*20,b+a*20,4,4);
tObj.filled = true;
tObj.stroked = false;
tObj.fillColor = mColor;
}
}
 
activeDocument.views[0].zoom = 0.1;
activeDocument.views[0].zoom = 2;
var end = new Date().getTime();
prompt("結果",end-start);

(引用終わり)

上記を、JSLintとJSHintの両方の指摘に合わせて修正するとこうなります。

var start = new Date().getTime();
documents.add(DocumentColorSpace.RGB, 3370, 2284);
var mColor = new RGBColor();

for (var b = 0; b < 16; b++) {
    mColor.red   = b * 14;
    mColor.green = b * 12;
    mColor.blue  = b * 10;
    for (var i = 0; i < 19266; i++) {
        var a = Math.floor(i / 114);
        var tObj = activeDocument.pathItems.rectangle(
            b + 20 + (i - a * 114) * 20,
            b + a * 20,
            4,
            4
        );
        tObj.filled    = true;
        tObj.stroked   = false;
        tObj.fillColor = mColor;
    }
}

activeDocument.views[0].zoom = 0.1;
activeDocument.views[0].zoom = 2;
var end = new Date().getTime();
prompt("結果", end - start);

プログラムの表記を整理しておくと、DTP屋さんとプログラム屋さんのコラボレーションが必要になった時、より意思疎通が図りやすくなります。

(昔は、「DTP屋がIT屋さんに置いていかれる」とか書いていたんだけれども、言っていた当時は「おまえは誰と戦っているのだ」と言われていたし、そう言いってた僕がDTP屋に居られなくなってしまいまるでギャグになったのでもう言わない)

ちなみに、ベンチマークについては、Pentium Dual-Core G3220で引用元のCore i7のスコア超えるみたいです。超省エネだし、Haswellってすごいね。

JavaScriptコーディング ベストプラクティス 高速かつ堅牢なコードを効率よく書くために

JavaScriptコーディング ベストプラクティス 高速かつ堅牢なコードを効率よく書くために