0

WinDbg を使用してメモリ使用量の問題を追跡すると、合計で 100 MB 以上を占める文字列が 100 万個あることがわかりました。私たちのアプリケーションは金融タイプの APP であるため、1 万のアカウントがあり、各アカウントには多くの文字列型のプロパティがあります。

私の質問は次のとおりです。特に文字列型の場合、メモリの問題のチューニングに関する良い記事/リソースはありますか? 前もって感謝します。

4

2 に答える 2

1

おそらく、デザインを確認する必要があります。何百万もの文字列を持つことは、おそらく良い考え/デザインではありません。

あなたのデザインが正確に何であるかはわかりませんが、次を使用して弦を調整できます

  • StringBuilder
  • ストリングインターン

通常の文字列オブジェクトでは、文字列を変更するたびに新しい文字列オブジェクトが作成されるため、不要なメモリ プレッシャが発生する可能性があります。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 に答える