1

嗨,提前感谢。

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

4

1 回答 1

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 上)

于 2015-07-02T22:40:32.170 回答