6

我有一个正在尝试执行的(长时间运行的)脚本。不幸的是,当它运行时,powershell 的内存使用量开始攀升。脚本比较简单,看不出有什么明显的内存泄露。但是,我使用的 API 可能表现不佳。

有没有一种简单的方法可以从 powershell 中获取对象的内存大小,所以我可以看看我的怀疑是否正确?

4

2 回答 2

9

也许一个粗略的方法是这样的:

$memBefore = (Get-Process -id $pid).WS
# Create object here...
$memAfter = (Get-Process -id $pid).WS
($memAfter - $memBefore) / 1KB

如果是内存泄漏,您可以通过以下方式缓解它:

[gc]::Collect()
于 2012-05-30T23:40:32.020 回答
6

另一种近似方式:

$before = [gc]::GetTotalMemory($true)
$s = "A new string object"
$after = [gc]::GetTotalMemory($true)

($after - $before)/1kb # return the delta in KBytes
于 2012-05-31T05:32:39.670 回答