Regex.Matches()
への呼び出し回数を含むテキスト処理内部ループで、メモリ割り当ての数を最小限に抑える必要があります。したがって、文字の長さ(文字単位)t
、正規表現パターンの長さ(文字単位)はr
、一致数はm
、メモリ割り当てのおおよその数はRegex.Matches()
となります。これらの配分?これらはRegex
オプションのいずれかの影響を受けていますか?Regex.Matches()は内部でどのくらいの割り当てをしていますか?
私はsource codeのRegex
とそれに関連するクラスを試してみましたが、その複雑さに悩まされています。 Regex.Matches()
のメモリ使用量に関するWeb上の多くのドキュメントも見つかりませんでした。したがって、疑問。
正規表現はFSMのようなものなので、それを格納するのに必要なメモリ(たぶんハッシュテーブル?)とバックトラックのための余分なスペースより多くのスペースを占めるべきではありません。それは設定と実際の正規表現の影響を受けます(正規表現の長さはそれとは無関係で、その複雑さや特定の機能の使い方があります)。マッチ回数は問題ではありません。まだプロファイリングを試したことがありますか? – MarZab
私はすでにコンセプトを理解しています。実装はその問題についてです。 – bright