シンプルなクロスアプリオブジェクトのメモリリーク
-
22-10-2019 - |
質問
私はクロスアプライドオブジェクトを試していますが、非常に奇妙なことを見つけました。
MemoryStreamオブジェクトを割り当てて参照を返す(そして発信者によってすぐに処分される)リモートメソッドを呼び出すと、メモリの使用量は非常に大幅に増加し、GC.Collect()を呼び出した後でもドロップダウンしません。
新しい文字列またはBYTE []オブジェクトを毎回返す呼び出しメソッドでは、漏れはありません。
メモリプロファイラーは、ほとんどのライブオブジェクトがタイプのchar []と文字列(memorystreamの場合)であることを示しています。
問題は、私は何かを誤解したことであり、リモートコールはMarshalbyRefobjectから継承するほど単純ではありませんか?
解決
リモートコールは簡単ですが、オブジェクトのライフタイムとゴミコレクションはそれほど簡単ではありません。
少し読む必要があります リースとスポンサーシップ.
所属していません StackOverflow