ふらっと C#,C♯,C#(初心者用) Part146at TECH
ふらっと C#,C♯,C#(初心者用) Part146 - 暇つぶし2ch53:デフォルトの名無しさん
19/12/14 16:02:25.78 BZ704rid0.net
>>51
まあね。ただ、C# の Match Evaluator 付き Regex.Replace は事前コンパイルできないと思う。
ちなみにあの後何度か測り直したのだが、switch より事前コンパイルなし正規表現は 2 倍遅かった。同等ではなかった、すまん。
45 によると Dictionary & ユーザー定義文字列操作は正規表現より 3-4 倍良かったそうだから、今回のケースでは Dictionary : switch : 事前コンパイルなし正規表現 = 3-4 : 2 : 1 くらいの性能比かと考えられる。
switch はカスケードがさらに増えると内部で Dictionary 化して最適化されるから、一般論としては 正規表現は事前コンパイルすれば switch に肉薄する、あるいは、多少超えるかもしれないが switch に Dictionary 最適化がかかったらまた離されるかもって感じではないかと。
>>52
ありがとう。Match Evaluator 正規表現でハッシュ置換するのはもう四半世紀も使っているテクだけど他で見たことなかったから、Ruby の例は参考になる。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch