2017年11月
      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    
無料ブログはココログ

« 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を使う。 »