显然,.NET 框架有一个错误,该错误会阻止准确确定 2GB 以上的工作集值。在 2 到 4GB 之间,可以应用一些异或计算来获取该值,但是无法获取大于 4GB 的工作集值(使用 .Net 或 WMI)
当工作集大于 4GB 时,可以使用什么方法(最好是通过 PowerShell 脚本)来准确测量进程的工作集?
(一些细节可以在这个 StackOverflow 问题中找到)
显然,.NET 框架有一个错误,该错误会阻止准确确定 2GB 以上的工作集值。在 2 到 4GB 之间,可以应用一些异或计算来获取该值,但是无法获取大于 4GB 的工作集值(使用 .Net 或 WMI)
当工作集大于 4GB 时,可以使用什么方法(最好是通过 PowerShell 脚本)来准确测量进程的工作集?
(一些细节可以在这个 StackOverflow 问题中找到)
这是为了监视特定过程:
输出以字节为单位,但您可以在以下命令中将其转换为 GB:
编辑: 阅读 SO 帖子,我看到您正在尝试获取超过 4 GB 的任何进程,而不将特定进程传递给脚本。下面是执行此操作的脚本,这里是指向解释如何使用cmdlet的脚本专家博客文章的链接:
Get-Counter
我知道这是一个老问题但仍然存在,这显示了 powershell 中真实的 64 位内存使用情况:
获取进程 $Processname -computername $Computername | ft 名称、ID、VirtualMemorySize64、PeakVirtualMemorySize64、WorkingSet64、PeakWorkingSet64
这显示了 gps 上的内存使用情况 |where {$_.workingset64 -gt 4000Mb }|ft name,pm,workingset64,id