1

こんにちは、サーバーとして1つのwinformアプリとクライアントとして無限の数のwinformアプリがあるシナリオがあります

基本的に、各クライアントはサーバーに接続し、サーバーに文字列を送信し、いくつかの計算を実行して文字列をクライアントに返しますが、サーバーはその文字列の計算のために別のサーバーに接続する必要があり、その2番目のサーバーからの応答でメインサーバーが文字列変数で応答し、特定の時間間隔の後、その文字列変数がテキストボックスに表示されますが、この文字列は計算ごとにどんどん大きくなるため、サーバーはタスクマネージャーで1GBのメモリを消費し始め、CPU使用率の40%を消費することがあります。文字列変数を削除すると、サーバーは 45 MB のメモリと 0 ~ 4% の CPU 使用率で実行されていました。このような文字列変数を使用しています。

string Serverlog += datafetched + "cl"

文字列ビルダーオブジェクトも試しましたが、結果は同じなので、物事を整理するのに役立つ人がいますか(多くのメモリを消費せずにログを保存するにはどうすればよいですか)。それらをテキストボックスに表示する

4

6 に答える 6

0

テキストをファイルまたは MSMQ または Telnet に書き込み、変数をクリアできます。上記のソースのいずれかから読み取ったコンテンツを表示している間。

于 2013-10-09T11:04:34.023 に答える
0

.net には、トレース/ログ記録のサポートが組み込まれています:
http://msdn.microsoft.com/en-us/library/zs6s4h68.aspx
ただし、log4net を使用しており、非常に満足しています:
http:// logging.apache.org/log4net/
あなたの質問から、ログがサーバーまたはクライアントによって表示されるかどうかは明確ではありません。ただし、log4net は、UPD Appenderなどのネット経由のロギングをサポートしています。

于 2013-10-09T11:09:42.987 に答える