任务列表与任务管理器内存

Posted

技术标签:

【中文标题】任务列表与任务管理器内存【英文标题】:tasklist vs. task manager memory 【发布时间】:2015-07-02 21:34:17 【问题描述】:

您好,提前致谢。

任务列表中的内存(您在 cmd 中运行)和那个 GUI 任务管理器有什么区别。我注意到浏览器进程的内存大大减少了。哪个更准确的进程的内存。

【问题讨论】:

【参考方案1】:

任务管理器有很多内存计数器,请参阅查看菜单 - 选择列。

显示的标准是私有工作集。这是 a/ 私有的 - 因此只有特定于该程序的内存中的字节(因此不计算 shell32 通用代码)和 b/ 工作集 - 映射并存在于该进程地址空间中的内存量。

即使地址空间中不存在的内存也可能在物理内存中,如备用列表或文件缓存中或被另一个程序使用。它只需要轻弹一下即可使其可用于该过程。运行两个记事本副本,记事本现在在文件缓存中(并且很小)两个进程。但是代码只在内存中一次而不是三次。

如果你想制作自己的任务列表。

Set objWMIService = GetObject("winmgmts:impersonationLevel=impersonate!\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

For Each objItem in colItems
'   If objitem.Name = "mspaint.exe" Then
        wscript.echo objitem.name & " PID=" & objItem.ProcessID & " SessionID=" & objitem.sessionid
'       objitem.terminate
'   End If
Next

以 ' 开头的行被注释掉。

在命令提示符下使用

cscript //nologo c:\path\script.vbs

这些是属性

Property                Type            Operation
========                ====            =========
CSName                              N/A                     N/A       
CommandLine                         N/A                     N/A       
Description                         N/A                     N/A       
ExecutablePath                      N/A                     N/A       
ExecutionState                      N/A                     N/A       
Handle                              N/A                     N/A       
HandleCount                         N/A                     N/A       
InstallDate                         N/A                     N/A       
KernelModeTime                      N/A                     N/A       
MaximumWorkingSetSize               N/A                     N/A       
MinimumWorkingSetSize               N/A                     N/A       
Name                                N/A                     N/A       
OSName                              N/A                     N/A       
OtherOperationCount                 N/A                     N/A       
OtherTransferCount                  N/A                     N/A       
PageFaults                          N/A                     N/A       
PageFileUsage                       N/A                     N/A       
ParentProcessId                     N/A                     N/A       
PeakPageFileUsage                   N/A                     N/A       
PeakVirtualSize                     N/A                     N/A       
PeakWorkingSetSize                  N/A                     N/A       
Priority                            N/A                     N/A       
PrivatePageCount                    N/A                     N/A       
ProcessId                           N/A                     N/A       
QuotaNonPagedPoolUsage              N/A                     N/A       
QuotaPagedPoolUsage                 N/A                     N/A       
QuotaPeakNonPagedPoolUsage          N/A                     N/A       
QuotaPeakPagedPoolUsage             N/A                     N/A       
ReadOperationCount                  N/A                     N/A       
ReadTransferCount                   N/A                     N/A       
SessionId                           N/A                     N/A       
Status                              N/A                     N/A       
TerminationDate                     N/A                     N/A       
ThreadCount                         N/A                     N/A       
UserModeTime                        N/A                     N/A       
VirtualSize                         N/A                     N/A       
WindowsVersion                      N/A                     N/A       
WorkingSetSize                      N/A                     N/A       
WriteOperationCount                 N/A                     N/A       
WriteTransferCount                  N/A                     N/A       

还有方法

Call            [ In/Out ]Params&type           Status
====            =====================           ======
AttachDebugger                              (null)         
Create                  [IN ]CommandLine(STRING)                (null)         
            [IN ]CurrentDirectory(STRING)           
            [IN ]ProcessStartupInformation(OBJECT)  
            [OUT]ProcessId(UINT32)                  
GetOwner                [OUT]Domain(STRING)                     (null)         
            [OUT]User(STRING)                       
GetOwnerSid             [OUT]Sid(STRING)                        (null)         
SetPriority             [IN ]Priority(SINT32)                   (null)         
Terminate               [IN ]Reason(UINT32)                     (null)         

与此相同

wmic process where name='notepad.exe' get /format:list

进一步阅读

https://msdn.microsoft.com/en-us/library/ms810627.aspx

https://www.labri.fr/perso/betrema/winnt/ntvmm.html(这不再出现在 MSDN 上)

【讨论】:

以上是关于任务列表与任务管理器内存的主要内容,如果未能解决你的问题,请参考以下文章

在任务管理器中的专用工作集是啥意思

win7任务管理器 内存相关项目的解释

任务管理器 里那个选项是物理内存

任务管理器的内存提交大小是啥意思?

PerformanceCounter CPU 和内存,如任务管理器

高手帮我解释几个WIN7任务管理器的简单问题!