0
我需要最大限度地减少文本处理内部循环中的内存分配数,其中包含多个对Regex.Matches()
的调用。因此,给定文本长度(字符数)t
,r
的正则表达式模式长度(以字符为单位)和匹配数m
,Regex.Matches()
作出的内存分配的近似数量是多少,以及这些分配?这些是否受到Regex
选项中的任何影响?Regex.Matches()在内部执行多少次分配?
我已经尝试过Regex
及其相关类的source code,但它们的复杂性受到阻碍。也没有在网络上找到有关Regex.Matches()
的内存使用情况的大量文档。因此,这个问题。像JetBrains dotMemory
正则表达式就像一个有限状态机,所以它不应该占用比内存更多的空间(可能是一个哈希表?)它需要存储它,并可能有一些额外的空间用于回溯。所以它会受到设置和实际正则表达式的影响(正则表达式的长度与它无关,它的复杂性和某些特性的用法),匹配的数量应该没有关系(除了我猜测的实际结果之外)。试过任何配置文件了吗? – MarZab
我已经理解了这个概念;实施就是问题所在。 – bright