工具列表:Sysinternals Suite, Visual Leak Detector (VLD), Intel® VTune Profiler
1、工具清单与用途对比
| 工具名称 |
类型 |
核心功能 |
推荐用途 |
| Sysinternals Suite |
系统诊断工具集 |
进程、线程、文件、注册表、内存、启动项等分析 |
整机系统监控与异常排查 |
| Visual Leak Detector |
内存泄漏检测工具 |
C++ 程序运行时检测堆内存泄漏,输出调用栈 |
调试 Visual C++ 项目的泄漏 |
| Intel VTune Profiler |
性能分析器 |
CPU/GPU 热点、线程、缓存、内存等性能分析 |
优化 C++ 程序运行效率 |
2、安装情况说明
2.1 Sysinternals Suite
- 来源:微软官方 Sysinternals 下载页( learn.microsoft 商业网/en-us/sysinternals/)
- 当前版本:2025.5(从 Microsoft Store 安装)
- 安装方式:MSIX 打包,可在 Windows 11 开始菜单中按组显示
- 特点:
- 无需安装、无注册表写入、绿色便携
- 包含如 Process Explorer, Procmon, TCPView, VMMap, Autoruns, RAMMap 等几十种实用工具
2.2 Visual Leak Detector (VLD)
- 来源:VLD 官网( kinddragon.github io/vld/)
- 当前版本:与 Visual Studio 2022 兼容
- 安装要求:
- 安装前需关闭 Visual Studio
- 安装后可直接在 C++ 项目中 #include <vld.h> 启用
- 特点:
- 程序退出时在 Output 输出泄漏详情(含文件、行号、调用栈)
- 专用于 Visual C++,无需手动追踪内存释放路径
2.3 Intel VTune Profiler 2025.3.0
- 来源:Intel oneAPI 官网( intel 国内网/content/www/cn/zh/developer/tools/oneapi/vtune-profiler.html)
- 安装位置:C:\Program Files (x86)\Intel\oneAPI\vtune\latest
- 安装组件:
- GUI 和命令行工具
- VS2022 插件(如勾选集成)
- 特点:
- 支持热点分析、线程分析、内存带宽、上下文切换等性能瓶颈定位
- 支持生成 HTML 报告,支持附加运行中进程
- 可结合 g++/cl 编译的本地 C++ 程序做性能调优
3. Sysinternals Suite 工具详解与用法
Sysinternals Suite 是一套可独立运行的系统工具合集,包含几十个 .exe 工具,下面列出最常用的:
3.1 Process Explorer(进程资源监控)
- 作用:增强版任务管理器,显示每个进程的 CPU、内存、线程、句柄、DLL 等详细信息。
- 使用方式:
- 运行 Process Explorer.exe
- 鼠标悬停在进程上查看命令行/路径等
- 可以右键“查看句柄”用于追踪文件/设备占用
3.2 Procmon(Process Monitor)
- 作用:实时捕捉系统对文件、注册表、进程和线程的所有调用记录。
- 使用方式:
- 运行 Procmon.exe
- 设置过滤条件(如 Process Name is yourapp.exe)
- 可追踪崩溃前是否访问了某些非法路径
3.3 Autoruns
- 作用:显示所有开机自动运行项目,包括计划任务、服务、注册表启动项。
- 使用方式:
- 运行 Autoruns.exe
- 可取消不明启动项(系统会自动禁用)
3.4 VMMap
- 作用:可视化查看单个进程的虚拟内存使用,包括堆栈、映射文件、保留页等。
- 使用方式:
- 运行 VMMap.exe,选择目标进程
- 查看 Memory Usage 图表和详细分布
3.5 TCPView
- 作用:列出所有当前网络连接、监听端口、远程地址等
- 使用方式:
- TCPView.exe 打开
- 查看每个进程与 IP 的连接状态
其他推荐工具:
| 工具 |
用法简述 |
| Desktops |
虚拟桌面切换(类似 Linux 多桌面) |
| RAMMap |
分析物理内存使用状态 |
| PsExec |
在远程或本地以 SYSTEM 权限运行命令 |
| BgInfo |
在桌面显示系统信息 |
4. Visual Leak Detector(VLD)使用指南
作用:
检测 C++ 程序中的内存泄漏,并在输出窗口中显示 泄漏源文件、行号、调用栈信息。
使用步骤:
安装后配置:
- 确保关闭 Visual Studio 后安装。
- 在你希望检测泄漏的项目里:
#include <vld.h>
- 编译并运行程序,程序退出时如有泄漏,VS 的 Output 窗口中会输出如下内容:
WARNING: Visual Leak Detector detected memory leaks!
File: MyClass.cpp(23)
Leak Size: 64 bytes
Call Stack: ...
建议:
- 在调试配置(Debug)下启用;
- 使用 new 后忘记 delete 会被自动识别;
- 可以用 vld_disable() 和 vld_enable() 控制区域分析。
5. Intel® VTune Profiler 2025.3.0 使用指南
作用:
用于性能瓶颈分析,包括:
- 函数耗时热点(Hotspots)
- 线程/锁竞争(Threading)
- 内存带宽、缓存命中(Memory Access)
- I/O 性能、上下文切换(Advanced)
分析流程(基本模式):
启动分析:
- 打开 VTune Profiler
- 新建 Project → 选择“Local Analysis”
- 填写:
- 应用路径(exe 文件)
- 参数(可选)
- 工作目录(一般为 exe 所在目录)
选择分析类型:
- Hotspots: 分析哪些函数/模块耗时最多
- Threading: 查看线程使用率、上下文切换
- Memory Access: 查看 cache miss 和 NUMA 问题
- Microarchitecture: 分析流水线阻塞、分支失败等
运行与查看报告:
- 点击 Start 开始采样
- 应用运行完后自动生成图表和函数耗时分析
- 可点击函数名查看调用栈与源码高亮
实战建议搭配:
| 使用场景 |
工具组合 |
| 程序崩溃或异常 IO 行为 |
Procmon + Process Explorer |
| 程序内存占用逐步上升 |
VLD + VMMap |
| 分析程序性能瓶颈 |
VTune Profiler(推荐先用 Hotspots) |
| 排查开机卡顿或异常启动项 |
Autoruns + TCPView |
| 检测线程锁竞争或上下文切换 |
VTune Profiler Threading + Process Explorer |
总结
这三款工具分别从系统级诊断、内存调试、性能分析三个层面构建了完整的 Windows 开发调试链路:
- Sysinternals Suite:定位系统行为与进程/线程关系
- Visual Leak Detector:捕捉 C++ 项目运行时的内存泄漏
- Intel VTune Profiler:挖掘程序性能瓶颈,优化运行效率
无论你是软件开发工程师、调试专家,还是想成为一名追求极致性能的 C++ 开发者,这三款工具都是你必不可少的利器。