gpt4 book ai didi

c# - 使用 process.WorkingSet64 测量内存使用情况的异常

转载 作者:行者123 更新时间:2023-11-30 20:57:59 28 4
gpt4 key购买 nike

我在 SO 上找到了许多关于使用此方法检索当前内存使用情况的引用资料,在我的例子中,是在 64 位 Windows 7 上运行的 32 位进程。我的代码是

System.Diagnostics.Process[] processes =
System.Diagnostics.Process.GetProcessesByName("ProcessName");
if (processes.Count() != 1)
{
throw exception here, only one instance allowed;
}

System.Diagnostics.Process process = processes[0];
memoryUsed = process.WorkingSet64 / (1024f * 1024f);

我的应用程序动态分配和释放堆内存,我可以通过标准 Windows 任务管理器确认这一点。但是,每次我调用上面显示的代码时,使用的检索内存总是高于以前的计数。此外,它与 TaskManager 不一致。根据任务管理器,它大约为 249 MB,而以编程方式检索为 280 MB。

我是不是在做傻事?

最佳答案

参见:

Process.WorkingSet64

Remarks:

The value returned by this property represents the current size of working set memory used by the process.

Windows 任务管理器 进程 选项卡中显示的默认内存列是内存(私有(private)工作集)

What do the Task Manager memory columns mean?

Memory - Private Working Set

Subset of working set that specifically describes the amount of memory a process is using that cannot be shared by other processes.

换句话说,如果您想要完整的工作集,您可能需要使用 Resource Monitor

perfmon.exe/res

关于c# - 使用 process.WorkingSet64 测量内存使用情况的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16402036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com