私の AutoIt スクリプトは、テスト ケースを自動化します。何かがメモリリークしている疑いがあります。10 MB から始まり、テスト ケースが終了すると約 40 MB に達します (タスク マネージャーの値)。
AutoIt スクリプトで、各テスト ケースの後にメモリ消費量を報告したいと考えています。違いを知ることで、おそらく原因を突き止めることができます。
AutoIt スクリプトを使用してプロセスのメモリ消費量を取得するにはどうすればよいですか?
私の AutoIt スクリプトは、テスト ケースを自動化します。何かがメモリリークしている疑いがあります。10 MB から始まり、テスト ケースが終了すると約 40 MB に達します (タスク マネージャーの値)。
AutoIt スクリプトで、各テスト ケースの後にメモリ消費量を報告したいと考えています。違いを知ることで、おそらく原因を突き止めることができます。
AutoIt スクリプトを使用してプロセスのメモリ消費量を取得するにはどうすればよいですか?
あなたが探している WorkingSetSize は、タスク マネージャーに表示されている値とまったく同じではない可能性があります。ドキュメントによると、ワーキング セットは、特定の時点でプロセス コンテキストに物理的にマップされるメモリの量です。
判別方法は次のとおりです。
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$pid = Run("notepad")
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId = " & $pid, "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) And $pid <> -1 Then
For $objItem In $colItems
ConsoleWrite("WorkingSetSize: " & $objItem.WorkingSetSize & @CRLF)
Next
Else
ConsoleWrite("No WMI Objects Found for class 'Win32_Process' with ProcessId = " & $pid & @CRLF)
EndIf
このメソッドを使用して、オブジェクトから他の値を見つけることもできます。Win32_Process