ご心配くださり,ありがとうございます。
つい一週間ほど前に過去ログに移ったスレッドがありますが,すでにヌルの混入が見られました。混入部分は本文のため,致命的なものではないようなのですが,なにしろ原因不明かつパターン不明なので手が付けられない。
さて,高速化のこと祝着至極に存じます。そこで確認したいことがあり。
> なぜか1030から始まる変換だけ遅い。
これは,例えば 1020 とか 1040 とかのときは遅くならないのですか?
> 重複した番号が発生したときに著しく遅くなる、とかありそう。
重複というのは,同じ飛び先の指定が複数箇所にあるということでしょうか?
(まぁ,そういうのはよくありますよね)
あと,試してみていただきたいことがあり。
単にステップ数の問題なので,大して変わらないかもしれませんが,例えば……
#55 " " &?("%d",o) #m
……これを少しだけまとめて……
#55 &?(" %d",o) #m
……のようにすると,速度はどうなるか。
ローカル10番の置換の方が数が多い分だけ変化があるかもしれませんけど。
#56 &?("\([ \t]+\)THEN\([ \t]+\)%d$$",o) #m &?("\1FTHEN\2%d",n) #m "ay"
#56 &?("\([ \t]+\)THEN\([ \t]+\)%d\([^0-9]\)",o) #m &?("\1FTHEN\2%d\3",n) #m "ay"
……みたいな。
まぁ,文字列は1文字1ステップみたいだから,さほど変わらないかな……