我有一个字符串,我需要用字典中的值替换标记.它必须尽可能高效.使用string.replace执行循环只会消耗内存(字符串是不可变的,请记住).StringBuilder.Replace()会更好,因为它是用于字符串操作的吗?
我希望避免花费RegEx,但如果这样做会更有效率那么就这样吧.
注意:我不关心代码复杂性,只关心它运行的速度和消耗的内存.
平均统计数据:长度为255-1024个字符,字典中为15-30个字符.
如果必须使用String.Replace()替换测试50次,则基本上必须创建一个新字符串50次.StringBuilder.Replace()是否更有效地执行此操作?例如,如果我要替换大量文本,我是否应该使用StringBuilder,即使我不会向其添加任何数据?
我正在使用.NET,但我认为这与Java和其他语言可能相同.
是否有任何好的,免费的工具来分析C#中的内存使用情况?
细节:
我有一个使用相当大的集合的可视化项目.我想检查这个项目的哪些部分 - 在数据处理方面,或在可视化方面 - 使用大部分内存,所以我可以优化它.
我知道,当谈到计算集合的大小时,情况非常简单,我可以自己做.但也有一些元素,我无法轻易估计内存使用情况.
内存使用量非常大,例如处理大小为35 MB的文件,我的程序使用的内存略多于250 MB.