0

当使用 WinDbg 跟踪内存使用问题时,我发现有一百万个字符串总共占用了 100+MBs。我们的应用是一个金融类APP,所以有上万个账户,每个账户都有很多字符串类型的属性。

我的问题是:有没有关于调整内存问题的好文章/资源,特别是对于字符串类型?提前致谢。

4

2 回答 2

1

您可能需要查看您的设计。拥有数百万个字符串可能不是一个好主意/设计。

虽然不确定您的设计到底是什么,但您可以使用

  • 字符串生成器
  • 字符串实习

使用普通的字符串对象,对字符串的每次修改都会创建一个新的字符串对象,这会带来不必要的内存压力。您可以使用 stringbuilder 类来缓解这个问题。StringBuilder 对象维护一个内部字符数组,任何修改都不会创建新字符串对象,而是内部字符数组被修改。字符串是通过调用StringBuilder对象上的ToString()获得的。

更多在这里

http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx

字符串实习是一个过程,您将唯一的字符串放置在一个公共池中并在应用程序之间共享。如果字符串已经在池中创建并实习,这将减少创建字符串的需要。

更多在这里

http://msdn.microsoft.com/en-us/library/system.string.intern.aspx

于 2012-10-12T06:05:03.953 回答
0

StringBuilder可能是要走的路。您需要拆分字符串。你需要大内存,StringBuilder我认为你必须直接这样做。

于 2012-10-12T05:14:48.677 回答