2022年5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

« VBAのDir()関数のワイルドカードの誤動作を補正する。 | トップページ | VBScriptのReplace()関数の代替にJScriptを使う。 »

2008年5月 1日 (木)

VBScriptのReplace()関数は、チョー遅い!

VBScriptのReplace()関数が遅い?と思ったことありませんか?
そこで試してみました。
置換回数(n)が多いと、o(n**2)で?、遅くなるようです。

a=String(1024*1024,"a")
t1=Timer
b=Replace(a,"a","b")
MsgBox Timer-t1
' 33.125

一方、RegExpのReplace()メソッドは、チョー速い!

a=String(1024*1024,"a")
t1=Timer
Set re=New RegExp
re.Global=True
re.Pattern="a"
b=re.Replace(a,"b")
MsgBox Timer-t1
' 0.1875

RegExpのReplace()メソッドを使いましょう。

« VBAのDir()関数のワイルドカードの誤動作を補正する。 | トップページ | VBScriptのReplace()関数の代替にJScriptを使う。 »