■プログラム説明(ソースコード説明)
シリアルサーチと正規表現のベンチマークテストです。一番最後にある文字列にマッチした場合のサンプルです。
【参考】
MacOS X (10.4.3) + InDesign CS2 + PowerMac G5 (2GHz Dual)での数値
シリアルサーチ:663ミリ秒(CSでは647ミリ秒)
正規表現:3379ミリ秒(CSでは3077ミリ秒)
■ソースコード
CR = String.fromCharCode(13);
aText = "本日は晴天なり。晴天とは晴天の霹靂とか。文字列テストなり。どうかな。";
count = 100000;
// シリアルサーチ
sObj = new Date();
for (i=0; i<count; i++)
{
n = aText.indexOf("かな。");
}
eObj = new Date();
time1 = eObj.getTime() - sObj.getTime();
// 正規表現
sObj = new Date();
for (i=0; i<count; i++)
{
n = aText.match(/かな。/);
}
eObj = new Date();
time2 = eObj.getTime() - sObj.getTime();
// 結果表示
pageObj = app.documents.add();
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["2cm","2cm","26cm","18cm"];
txtObj.contents = "シリアルサーチ:"+time1+"ミリ秒"+CR+"正規表現:"+time2+"ミリ秒";
■実際のスクリプトをダウンロード(sample.jsx.zip)