[英]PowerShell - how can I get memory consumption peak for my exe program from PowerShell
我有一個分配內存的程序。 我從 Windows PowerShell 命令行運行它。 它可以運行 1-2 個小時來分配和釋放內存塊。
我正在尋找的是一種在最后(程序完成時)獲得一些內存消耗統計信息的方法。 更具體地說,內存的峰值使用量是多少(分配的最大內存)。
Get-Process -Id xxx
為您提供 ID 為 xxx 的進程的Process
對象實例。 那里有各種與內存相關的屬性,包括PeakVirtualMemorySize64
和PeakWorkingSet64
類的東西。 選擇你覺得有用的那些。
您甚至可以設置后台作業來獲取數據系列,例如
$proc = Start-Process "your_long_running.exe" -PassThru
$memoryWatcher = Start-Job -ScriptBlock {
while ($true) {
Get-Process -Id $args[0] | Select VirtualMemorySize64,PeakVirtualMemorySize64
Start-Sleep -Seconds 1
}
} -ArgumentList $proc.Id
# now wait for the process to end
Wait-Process -Id $proc.Id
$memoryWatcher.StopJob()
$results = Receive-Job $memoryWatcher
$results | Format-Table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.