.Net3.5フレームワークのBinaryFormatterクラスでメモリリークの問題が発生しています。次のメソッドを使用してオブジェクトを逆シリアル化します。このメソッドに渡されるバイト配列のサイズは156MBです。ただし、このメソッドを呼び出した後、2.6GBのジャンプがあります。
このメモリリークの問題について説明しているMSDNの記事を見つけました。http://blogs.msdn.com/b/psirr/archive/2009/11/13/interesting-memory-leak-in-net-3-5-binary-deserialization.aspx
この問題の解決策があるかどうか誰かが知っていますか?.Net 4.0で解決されていますか?
public static Message DeserializeContent(byte[] content)
{
var formatter = new BinaryFormatter();
Message message;
using (var stream = new MemoryStream(content))
{
message = (Message) formatter.Deserialize(stream);
stream.Close();
}
return message;
}