当前位置: 首页 > news >正文

[特殊字符]Windows 资源监视器使用指南:查端口以后不用敲命令了

前言

才发现这个Windows自带的小软件,查端口占用还是很方便,学习一下。

一、资源监视器简介

资源监视器是Windows系统内置的工具,用于实时监控CPU、内存、磁盘和网络等硬件资源的使用情况。它能帮助你:

  • 诊断系统卡顿、程序无响应等问题;
  • 查看哪些程序占用资源过多;
  • 优化系统性能,提升电脑运行效率。

二、启动资源监视器

有多种方式可以启动它,程序员应该选择最顺手的一种:

2.1 快捷键 (推荐):按 Ctrl + Shift + Esc 打开任务管理器 -> 切换到“性能”标签页 -> “打开资源监视器”。

标签页主要功能典型用途
CPU展示各进程、服务的 CPU 使用率和线程排查占用过高的进程或服务
内存查看物理内存分配、硬件保留和可用量诊断内存泄漏和高占用情况
磁盘显示各进程的磁盘读写活动找出频繁读写导致卡顿的进程
网络统计每个进程的网络发送和接收流量确定网络带宽占用来源

界面如下:

2.2 运行命令 (最快):按 Win + R,输入 resmon 并按回车。

2.3 开始菜单:直接在开始菜单搜索“资源监视器”或 “Resource Monitor”。

三、界面介绍与使用指南

资源监视器窗口分为几个主要部分:

  • 顶部摘要栏:以图表形式实时显示 CPU、磁盘、网络和内存的总体使用情况。

  • 五个标签页概述、CPU、内存、磁盘、网络。这是核心功能区域。

  • 动态过滤器:每个标签页下方都有一个进程列表,勾选进程前的复选框可以过滤下方所有图表和数据,只显示与该进程相关的活动。这是最强大的功能!

具体各部分功能阐述如下。


3.1 CPU 标签页

  • 功能:监控进程和服务的 CPU 占用,并深入到线程级别。

  • 程序员应用场景

    1. 排查 CPU 占用 100% 的问题

      • 在“进程”列表中,按“CPU”列排序,找到罪魁祸首。

      • 关键步骤:勾选那个高占用的进程,然后查看右侧的“关联的句柄”和“关联的模块”。

      • “关联的句柄”:可能会显示该进程正在频繁操作的文件或注册表键,这可能是瓶颈所在。(例如,它在疯狂写日志文件?)

      • “关联的模块”:显示进程加载的 DLL。如果某个第三方库的 DLL 占用异常高,可能是该库的 bug 或兼容性问题。

    2. 分析多线程性能

      • 勾选你的进程,然后切换到“CPU”标签页底部的“线程”视图。

      • 这里可以看到你的进程创建的每一个线程的 CPU 占用情况。结合你的代码,你可以判断出是否是某个特定线程(例如,一个死循环的计算线程)导致了高负载。

      • 技巧:右键点击线程列表的标题栏,勾选“命令行”和“进程 ID”,可以显示更详细的信息。

3.2 内存 标签页

  • 功能:详细展示物理内存的使用情况,远不止“已提交”和“已缓存”这么简单。

  • 程序员应用场景

    1. 排查内存泄漏 (Memory Leak)

      • 关注“提交 (KB)”和“工作集 (KB)”:工作集是当前在物理内存中的部分,提交是进程承诺要使用的总量(包括在页面文件中的)。如果一个进程的“提交”内存随时间持续稳定增长,而逻辑上它不应该(例如,处理完一批数据后内存应释放),这就强烈暗示存在内存泄漏。

      • “硬错误/秒”:如果这个值持续很高,说明进程频繁需要从硬盘页面文件 (pagefile.sys) 中交换数据,即“缺页中断”。这通常是内存不足或程序访问内存方式非常分散( locality 差)的标志,会导致性能急剧下降。

    2. 了解内存分配细节

      • “专用 (KB)”:这是你的进程真正独享的内存,是分析内存泄漏最关键的指标。

      • “可共享 (KB)”:进程当前使用但可能与其他进程共享的内存(通常是 DLL 代码)。

      • “共用 (KB)”:当前正被多个进程共享的内存量。

3.3 磁盘 标签页

  • 功能:监控所有进程的磁盘 I/O 活动,包括读写速度、响应时间和操作队列。

  • 程序员应用场景

    1. 排查程序“卡顿”:程序运行时界面卡顿,不一定是 CPU 问题,很可能是磁盘 I/O 阻塞。

      • 在“进程与磁盘活动”中,查看“总计 (B/秒)”排序,找到磁盘活动最频繁的进程。

      • 关注“磁盘队列长度”:如果平均值持续大于 1,说明磁盘请求已经排起队了,磁盘成为系统瓶颈。你的程序可能是制造者,也可能是受害者。

    2. 找出程序正在访问哪些文件

      • 勾选你的进程,查看下方的“磁盘活动”列表。这里会实时显示你的进程正在读写哪个具体文件,以及读写速度。这对于调试配置文件读取、日志写入、数据缓存等操作极其有用。

    3. 优化数据库或文件操作:你可以清晰地看到数据库进程(如 MySQL, SQL Server)的读写操作频率和文件,帮助判断是否是 I/O 瓶颈。

3.4 网络 标签页

  • 功能:监控所有进程的网络活动,包括带宽占用、TCP 连接和监听端口。

  • 程序员应用场景

    1. “地址已在使用中” (端口占用):

      • 这是程序员的经典问题。切换到“侦听端口”列表。

      • 按“端口”排序,快速找到是哪个进程占用了你想要的端口(如 8080, 3306)。

      • 右键标题栏,可以添加“PID”和“命令行”列,方便确认。

    2. 分析网络通信

      • 勾选你的进程,查看“TCP 连接”,可以看到它当前与哪些远程 IP 和端口建立了连接。

      • 查看“网络活动”,可以看到它正在通过哪个本地地址和端口发送/接收数据,以及实时流量。

    3. 排查网络性能问题

      • “TCP 连接”中的“发送/接收延迟”和“连接失败”计数可以帮你判断网络链路的质量问题。


四、实战案例:一个完整的调试流程

问题:你开发的 Web 服务程序 MyWebServer.exe 在运行一段时间后响应变慢,并且服务器整体内存占用很高。

  1. 初步定位 (概述标签页)

    • 打开资源监视器,在“概述”页的“CPU”、“磁盘”、“网络”图表中,可能看不到明显瓶颈。

    • 但在“内存”图表中,你看到“可用”内存很少,“已修改”和“备用”内存很多。提示问题可能出在内存。

  2. 深入分析 (内存标签页)

    • 切换到“内存”标签页。

    • 在进程列表中按“提交 (KB)”排序,发现 MyWebServer.exe 的提交内存异常高,并且还在缓慢增长,而其他进程很稳定。强烈怀疑内存泄漏

    • 记录下它的 PID (例如 4412)。

  3. 关联分析 (CPU & 磁盘标签页)

    • 由于内存不足,系统会频繁进行内存分页。切换到“磁盘”标签页,你可能会看到“磁盘队列长度”偶尔飙升,并且 MyWebServer.exe 或 System 进程产生了大量磁盘写入(写入页面文件),这解释了为什么服务会变“卡”。

  4. 结合其他工具

    • 现在你知道了罪魁祸首是 MyWebServer.exe (PID: 4412) 存在内存泄漏。

    • 接下来,你可以使用 Performance Monitor (perfmon) 来记录该进程的私有字节等计数器,确认泄漏趋势。

    • 最后,使用 调试器 (WinDbg) 或 专门的内存分析工具 (.NET 的 dotMemory, CLR Profiler; C++ 的 Valgrind, VMMap, Deleaker) 来附加到该进程上,分析具体是哪部分代码、哪种对象发生了泄漏。

http://www.dtcms.com/a/351064.html

相关文章:

  • AI解决生活小事系列——用AI给我的电脑做一次“深度体检”
  • 【LeetCode 热题 100】31. 下一个排列
  • Python之matplotlib 基础五:绘制饼状统计图
  • 有鹿机器人:为城市描绘清洁新图景的智能使者
  • Linux IO模型:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO
  • 绿算技术解密金融科技安全:高性能计算与存储驱动金融防火墙新时代
  • 系统安全难题咋解?低代码给出新思路
  • 打破技术壁垒的先进制造框架的智慧工业开源了
  • 医疗巡诊车5G专网路由器应用
  • 360智脑开源优化排序模型——360Zhinao-1.8B-Reranking本地部署教程,提升检索质量,减少大模型“幻觉”现象
  • Windows编程日志4——消息队列和消息处理
  • Hive的核心架构
  • Go语言模块开发
  • 从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计
  • S-HUB实现泛微E9与飞书对接
  • Redisson详解:高性能redis客户端,超详细!
  • MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
  • 【资讯】国内免费/开源大模型对比及获得途径总结
  • 书生大模型InternLM2:从2.6T数据到200K上下文的开源模型王者
  • 实体店转型破局之道:新零售社区商城小程序开发重构经营生态
  • kafka消费顺序保障
  • Kafa面试经典题--Kafka为什么吞吐量大,速度快
  • 高校科技成果转化生态价值重构
  • Go函数详解:从基础到高阶应用
  • Ubuntu Server 快速部署长安链:基于 Go 的智能合约实现商品溯源
  • 质押、ETF、财库三箭齐发:以太坊价值逻辑的重构与演进
  • Linux系统中,利用sed命令删除文档空格的方法汇总
  • Redis ZSET 深度剖析:从命令、原理到实战
  • 基于 Elasticsearch 解决分库分表查询难题
  • [Maven 基础课程]Maven 是什么