2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vb.net メモリ使用量解析

Posted at

開発中のvb.netアプリにてメモリ使用量のログが必要になったので、覚書

やりたいこと

  • 開発アプリのメモリ使用量をロギングしたい

環境

  • 言語: vb.net
  • .Net Framework: 4.5

実装

vb.net
  Public Sub SaveMemoryLog()
    Try
      Dim MsgBuf As String = ""

      If System.IO.File.Exists(**ログファイルパス**) = False Then
        MsgBuf &= "EXECUTION_TIME" & vbTab
        MsgBuf &= "GC_TOTAL_MEMORY" & vbTab
        MsgBuf &= "PRIVATE_NEMORY" & vbTab
        MsgBuf &= "WORKING_SET" & vbTab
        MsgBuf &= "VIRTUAL_MEMORY" & vbTab
        MsgBuf &= "METHOD_NAME"
        MsgBuf &= vbCrLf
      End If

      MsgBuf &= Date.Now.ToString("yyyy/MM/dd HH:mm:ss:fff") & vbTab
      MsgBuf &= (GC.GetTotalMemory(False) / 1024).ToString("F7").PadLeft(16) & " KB" & vbTab               'マネージド メモリに現在割り当てられているバイト数
      Using currentProcess As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess()
        currentProcess.Refresh()
        MsgBuf &= (currentProcess.PrivateMemorySize64 / 1024).ToString.PadLeft(8) & " KB" & vbTab          'プロセスに割り当てられたプライベートメモリのバイト数
        MsgBuf &= (currentProcess.WorkingSet64 / 1024).ToString.PadLeft(8) & " KB" & vbTab
        MsgBuf &= (currentProcess.VirtualMemorySize64 / 1024).ToString.PadLeft(8) & " KB" & vbTab
        currentProcess.Close()
      End Using
      MsgBuf &= MethodName

      'WriteLog(**ログファイルパス**, MsgBuf) '自作のログ書込み関数

    Catch ex As Exception
      SaveErrorLog("SaveMemoryLog", ex)
    End Try
  End Sub
  • GC.GetTotalMemory(False)

    • 公式
    • マネージド メモリに現在割り当てられているメモリの量
  • currentProcess.PrivateMemorySize64

    • 公式
    • プロセスに割り当てられ、他のプロセスと共有できないメモリの量
  • currentProcess.WorkingSet64

    • 公式
    • プロセスに割り当てられた物理メモリの量
    • 共有ワーキングセットと専用ワーキングセットの両方が含まれる
  • currentProcess.VirtualMemorySize64

    • 公式
    • プロセスに割り当てられた仮想メモリの量

結果

'出力例
EXECUTION_TIME	GC_TOTAL_MEMORY	PRIVATE_NEMORY	WORKING_SET	VIRTUAL_MEMORY	METHOD_NAME
2019/04/16 00:00:00:262	   19989.0546875 KB	   97276 KB	  128232 KB	  816712 KB	
2019/04/16 00:00:01:261	   19988.1015625 KB	   97276 KB	  128232 KB	  816712 KB	
2019/04/16 00:00:02:259	   19994.8984375 KB	   97276 KB	  128232 KB	  816712 KB	
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?