高效工具实战指南:Procexp64进程资源管理器

目录

1.下载Procexp64进程资源管理器

2.使用Procexp64进程资源管理器


前言

本篇博客主要讲解的是Procexp64进程资源管理器,这是Sysinternals套件里一个加强版的任务管理器",它把Windows自带任务管理器只能给的粗粒度CPU / 内存 / 磁盘数据,往下详细到了进程级、线程级甚至句柄级,你能直接看到某个进程打开了哪些文件句柄、加载了哪些DLL、占了哪个TCP端口、哪个线程正在跑什么调用,这对开发调试文件占用、端口冲突、句柄泄漏是救命的;它还能挂符号表把线程栈还原成函数名,排查死锁或高 CPU 线程时不用开WinDbg就能先粗定位,进程树模式能看清谁spawn了谁。而且能实时看GPU、I/O、私有工作集这些更细的指标,比任务管理器那点信息深得多,算是Windows下开发者和运维排障的标配。


下载Procexp64进程资源管理器

Procexp64进程资源管理器下载链接如下:

Procexp64进程资源管理器下载链接https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer

点击下载链接跳转至下载网站后,点击Download Process Explorer即可下载Procexp64进程资源管理器。如下图:

图1.下载Procexp64进程资源管理器


使用Procexp64进程资源管理器

下载成功以后,解压压缩包双击procexp64.exe可执行文件即可打开Procexp64进程资源管理器。

图2.打开Procexp64进程资源管理器

打开Procexp64进程资源管理器以后,如图3我们能看到主界面分为以下几个模块:
1.菜单栏:包含File/Options/View/Process/Find/Users/Handle/Help,用于设置视图、查找进程、查看句柄等。

2.性能小图:顶部的小型实时曲线,用来快速观察CPU、内存、I/O等资源变化。

3.进程树:左侧按父子关系展示进程,例如多个msedge.exe是Edge的多进程结构。

4.资源列:例如CPU代表当前的CPU占用,PrivateBytes代表进程私有虚拟内存,WorkingSet代表当前实际驻留物理内存,PID代表进程ID。

5.下方面板标签:Handle/DLLs/Threads,用于查看选中进程的句柄、加载 DLL、线程。

6.状态栏:底部显示全局资源状态。

图3.Procexp64主界面

接下来我们使用Weixin.exe举例,点击下方的DLLS既能查看Weixin.exe加载的一些动态链接库的信息。

图4.进程加载的DLL信息

也可以通过调整为Threads查看当前Weixin.exe创建的线程状态和性能数据。

图5.进程创建的线程信息和性能数据

在主界面中,我们也可以对进程右键来手动创建Dump文件,这与资源管理器的操作是一致的。

图6.创建Dump文件

如果我们需要查看更详细的进程当前详细,则需要双击选中的进程打开子窗口即可查看详细数据,如下图:

图7.查看详细的进程信息

在进程的详细信息窗口中,我们可以在Threads页下查看以下信息:
1.Count:线程总数

2.进程创建的线程信息:PID代表线程ID,CPU代表该线程当前的CPU使用率,CyclesDelta代表线程近期的CPU周期变换,SuspendCount代表线程被挂起的次数,StartAddress代表线程入口或者当前符号的位置,可以用来判断线程来自哪一个DLL或者模块

3.所选线程运行状态:State代表线程当前所处的状态,KernelTime和UserTime分别表示内核态和用户态的累计执行时间,ContextSwitches代表线程上下文的切换次数,BasePriority和DynamicPriority分别代表线程基础优先级和动态优先级,IdealProcessor代表系统倾向于把当前线程调度到哪一个CPU

图8.进程详细信息窗口

而我们在进程详细详细窗口中双击选中的线程,可以弹出线程当前调用的堆栈信息,这些信息可以帮助我们分析线程泄露等问题。

图9.线程调用堆栈窗口

除去Threads标签以外,我们可以在Performance标签页中查看到以下信息:
1.CPU信息:当前进程的优先级和累计消耗的CPU时间

2.虚拟内存信息:当前经常提交内存大小

3.物理内存信息:当前经常占用的物理内存大小

4.进程I/O信息:当前进程的IO信息

5.进程句柄信息:当前进程的句柄信息,如果句柄数持续上涨则代表句柄泄露

图10.Performance标签页

在GPU Graph标签页中,我们可以查看到以下信息:
1.GPU Usage:当前进程调用GPU渲染和计算的使用率

2.Dedicated GPU Memory :当前进程占用的独立显存信息

3.System GPU Memory :当前进程使用的共享系统内存空间

4.Committed GPU Memory :当前进程提交的GPU内存总量

图11.GPU Graph标签页

在Image标签页中,我们可以重点关注以下信息:
1.Version:当前进程的版本信息

2.Path:当前进程的可执行文件路径

图12.Image标签页

在Environment标签页中,我们可以查看当前进程的环境变量信息,如图13。

图13.Environment标签页

在Performance Graph标签页中,我们可以观察到当前进程CPU相关的信息,具体如下:
1.CPU Usage:当前进程的CPU使用率

2.Private Bytes:当前进程提交的私有内存大小

3.I/O:当前进程的IO使用率

图14.Performance Graph标签页

相关推荐
cjr_xyi17 小时前
AT1202Contest_c binarydigit 题解
c语言·c++·算法
会周易的程序员17 小时前
Libnodave S7 通信库:架构设计与实现解析
linux·c++·物联网·架构·c·s7·工业协议
jinyishu_17 小时前
C++ 多态完全指南:从基础语法到底层原理
开发语言·c++·程序人生·面试
这是柠檬君19 小时前
Microsoft Activation Scripts(MAS)最新版!
windows·office
xinhuanjieyi19 小时前
cargo在windows系统下编译成exe,用everything搜索路径
windows·everything
来一碗刘肉面20 小时前
队列的链式实现
数据结构·c++·算法·链表
naturerun20 小时前
逐步插入回路法构造欧拉回路的算法
c++·算法
IT曙光21 小时前
OpenClaw 安装与初始化指南windows
windows·openclaw
tinygone21 小时前
在Windows上部署Unlimited-ocr并提供给大模型使用
人工智能·windows·经验分享