|
分類:[.NET 全般]
2010/02/17(Wed) 14:17:19 編集(投稿者)
いつもお世話になっております。 早速、本題に入ります。
環境:VISTA VS2008 言語:VB.NET3.5
他のプロセスから通知を受けて、共有メモリからデータを取得して、 DataGridViewに最大3000件表示する画面があります。
問題は長期間(48時間)画面を起動しっ放しにすると、メモリ使用量が肥大化する現象があります。 ここで、画面で使用する各オブジェクトのメモリ使用量を監視したいですが、 1.それ用のソフトなんかあいますか?
現在は、タイマでオブジェクトのバイナリサイズを取得して、ログ出力してますが、 2.使用しているすべての変数を対象にするためにはどうすればいいでしょうか? もしくは、使用済みで開放してない変数がどれなのかを確認する方法はあるでしょうか?
現在は可記のように。 Private Function GetSerializedLength(ByVal objGraph As Object) As Long
Dim stream = New System.IO.MemoryStream() Dim writer = New System.IO.BinaryWriter(stream)
Dim b = New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter b.Serialize(writer.BaseStream, objGraph)
writer.Flush()
Dim size = stream.Length stream.Close()
Return size End Function
|