📘 桌面应用性能分析与内存泄漏排查实战
📚
30 章 · 从入门到进阶
01
性能分析基础
指标
什么是桌面应用性能?为什么性能重要?常见指标:CPU、内存、IO、网络。
02
性能分析工具概览
工具
Windows Performance Toolkit、PerfView、dotMemory、Valgrind、Instruments。
03
CPU性能分析
热点
CPU使用率过高问题定位、热点函数识别、多线程调度分析。
04
内存性能分析
内存
内存占用过高、虚拟内存与物理内存、分页与交换。
05
IO性能分析
磁盘
磁盘读写瓶颈、文件访问模式、异步IO与同步IO。
06
网络性能分析
网络
网络延迟、带宽占用、HTTP请求优化、WebSocket性能。
07
UI线程与渲染性能
渲染
主线程阻塞、帧率下降、布局重绘、GPU加速。
08
启动性能优化
启动
冷启动与热启动、懒加载、预加载策略、启动时间测量。
09
内存泄漏基础
泄漏
什么是内存泄漏?内存泄漏的危害、常见泄漏模式。
10
引用计数与循环引用
循环
引用计数原理、循环引用导致泄漏、弱引用与智能指针。
11
托管内存泄漏
托管
.NET/Java GC原理、托管堆泄漏、事件处理器泄漏、静态集合泄漏。
12
原生内存泄漏
原生
C/C++ malloc/free不匹配、COM组件引用计数、Win32 API资源泄漏。
13
内存泄漏检测工具
检测
Valgrind、Dr. Memory、Visual Studio Diagnostic Tools、dotMemory。
14
堆转储分析
转储
获取堆转储、分析对象图、查找泄漏根对象、使用WinDbg/SOS。
15
事件处理器泄漏
事件
事件订阅与取消订阅、匿名方法捕获、WeakEvent模式。
16
静态变量与单例泄漏
静态
静态集合持有对象、单例生命周期管理、全局缓存泄漏。
17
线程与异步泄漏
线程
线程池滥用、Task未释放、死锁导致资源泄漏。
18
资源泄漏
资源
GDI对象泄漏、句柄泄漏、数据库连接泄漏、文件句柄泄漏。
19
第三方库与框架泄漏
框架
WPF绑定泄漏、WinForms资源泄漏、Electron内存问题。
20
性能监控与告警
监控
实时监控指标、阈值设置、告警策略、日志聚合。
21
性能测试方法论
测试
基准测试、压力测试、稳定性测试、A/B测试。
22
实战案例一:启动慢
案例
桌面应用启动慢,如何定位并优化?
23
实战案例二:内存持续增长
案例
应用运行中内存持续增长,如何排查泄漏?
24
实战案例三:UI卡顿掉帧
案例
UI卡顿掉帧,如何优化渲染性能?
25
实战案例四:IO瓶颈
案例
大量文件读写导致IO瓶颈,如何改进?
26
实战案例五:网络超时
案例
网络请求频繁超时,如何优化通信?
27
性能优化最佳实践
实践
代码层面、架构层面、部署层面。
28
性能回归预防
CI/CD
CI/CD集成性能测试、性能基线、自动化回归。
29
跨平台性能分析
跨平台
Windows、macOS、Linux下的工具与策略。
30
课程总结与进阶
成长
性能工程师成长路径、推荐书籍与社区、未来趋势。