1

Windows で単純な UDP メッセージ サーバーとクライアント アプリケーションを開発しました。サーバーはクライアントにメッセージを送信できますが、クライアントは何も送信できず、リッスンするだけです。問題は、クライアント アプリケーションが非常に大量のメモリを使用していることです。リッスンしているときは約 7M、パケットを受信したときは 9M です。メモリ使用量を少なくとも 1M 未満に減らすことはできますか?

4

2 に答える 2

2

メモリフットプリントをどのように測定していますか? どんな管理された .net アプリケーションでも、最小のものでも通常は約 50 MB の共有ワーキング セットを持ち、アプリの実際のメモリ フットプリントはそれよりはるかに小さくなります。

GC.GetTotalMemoryを呼び出して、実際のマネージ メモリの使用状況を調べてみましたか?

于 2011-02-25T08:11:33.807 に答える
1

この負担の多くは、CLR システム全体、ガベージ コレクションなどを実行するオーバーヘッドです。メモリ フットプリント (<10-20Mb) に非常に敏感な場合、CLR は適していない可能性があります。基本的な HelloWorld プライベート ワーキング セットでさえ、4Mb を超える RAM です。

フットプリントに敏感な場合は、C/C++ などの真の事前コンパイル言語に目を向けることが最善の方法かもしれません。

于 2011-02-25T08:17:03.593 に答える