簡體   English   中英

PowerShell - 如何從 PowerShell 獲得我的 exe 程序的內存消耗峰值

[英]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對象實例。 那里有各種與內存相關的屬性,包括PeakVirtualMemorySize64PeakWorkingSet64類的東西。 選擇你覺得有用的那些。

您甚至可以設置后台作業來獲取數據系列,例如

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM