シリアルサーチと正規表現(文字列の最初にマッチ)

■プログラム説明(ソースコード説明)
 シリアルサーチと正規表現のベンチマークテストです。一番最初にある文字列にマッチした場合のサンプルです。

【参考】
 MacOS X (10.4.3) + InDesign CS2 + PowerMac G5 (2GHz Dual)での数値

シリアルサーチ:647ミリ秒(CSでは665ミリ秒)
正規表現:3261ミリ秒(CSでは2919ミリ秒)

■ソースコード
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)