WPF性能调试系列 – 内存监测
2017-02-10 11:40
495 查看
WPF性能调试系列文章:
WPF页面渲染优化:Application Timeline
WPF页面业务加载优化:Ants Performance Profiler
WPF内存优化:Ants Memory Profiler
内存监测(Ants Memory Profiler)
Ants Memory Profiler是专门针对于.net程序的内存动态分析工具,通过实时监测WPF程序中每个对象分配的内存空间大小,来提供多样式报告展示内存的使用情况。我们可根据分析结果进行指定对象的优化。
从RedGate官网下载,下载地址为http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
模拟分析应用程序
打开Ants Memory Profiler,通过菜单File -> New Profiling Session...(Ctrl+N)打开新的监测会话,在可监测程序类型中选择.Net executable。
开始执行后,wpf应用会打开执行,操作应用并实时监测内存使用情况,对于内存使用较高地方进行Take Memory Snapshot:
注:一次内存分析可进行多次内存点拍照。比如程序刚运行进行拍照,运行一段时间之后再次拍照,这样可通过对比两次拍照的内存差别分析出对象占用内存情况,更便于分析问题。
一个拍照监测点结果分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+summary+page
注:1. 托管对象如果内存使用过高,考虑是否缓存数据过大,托管资源一般无需过多考虑,可等待.net垃圾回收器进行自行回收。
2. 非托管资源如果占用内存过高,需要进行手动释放,因为费托管资源是无法自动被.net垃圾回收器回收 – 非托管资源包括:GUI+,图片操作,文件操作,win32调用等
多个拍照监测点结果对比分析:
具体类视图分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+class+list
具体对象分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+instance+list
内存泄露主要原因分析:静态引用、未注销的事件绑定、非托管代码资源使用等。对于静态对象尽量小或者不用,非托管资源可通过手动Dispose来释放。
WPF页面渲染优化:Application Timeline
WPF页面业务加载优化:Ants Performance Profiler
WPF内存优化:Ants Memory Profiler
内存监测(Ants Memory Profiler)
Ants Memory Profiler是专门针对于.net程序的内存动态分析工具,通过实时监测WPF程序中每个对象分配的内存空间大小,来提供多样式报告展示内存的使用情况。我们可根据分析结果进行指定对象的优化。
从RedGate官网下载,下载地址为http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
模拟分析应用程序
打开Ants Memory Profiler,通过菜单File -> New Profiling Session...(Ctrl+N)打开新的监测会话,在可监测程序类型中选择.Net executable。
开始执行后,wpf应用会打开执行,操作应用并实时监测内存使用情况,对于内存使用较高地方进行Take Memory Snapshot:
注:一次内存分析可进行多次内存点拍照。比如程序刚运行进行拍照,运行一段时间之后再次拍照,这样可通过对比两次拍照的内存差别分析出对象占用内存情况,更便于分析问题。
一个拍照监测点结果分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+summary+page
注:1. 托管对象如果内存使用过高,考虑是否缓存数据过大,托管资源一般无需过多考虑,可等待.net垃圾回收器进行自行回收。
2. 非托管资源如果占用内存过高,需要进行手动释放,因为费托管资源是无法自动被.net垃圾回收器回收 – 非托管资源包括:GUI+,图片操作,文件操作,win32调用等
多个拍照监测点结果对比分析:
具体类视图分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+class+list
具体对象分析:
可参考具体详解:https://documentation.red-gate.com/display/AMP8/The+instance+list
内存泄露主要原因分析:静态引用、未注销的事件绑定、非托管代码资源使用等。对于静态对象尽量小或者不用,非托管资源可通过手动Dispose来释放。
相关文章推荐
- WPF性能调试系列 – 应用程序时间线
- WPF性能调试系列 – Ants Performance Profiler
- Windows Mobile 进阶系列.多窗体应用的性能与编程调试
- 能调试---(四)内存性能分析
- Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的自由软件。
- 软件调试系列:崩溃篇之内存值异常
- 性能调试---(四)内存性能分析
- valgrind: 一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具
- Android学习系列(32)--App调试内存泄露之Cursor篇
- linux性能系列--内存
- Linux下检查内存泄漏、系统性能的系列工具
- 构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)―托管资源优化―监测CLR性能
- Linux系列-Red Hat5平台下构建Cacti流量与性能监测系统(转)
- .Net性能、内存监测工具
- Linux系列-Red Hat5平台下构建Cacti流量与性能监测系统
- iOS指南系列:如何解决内存问题 深入调试 结尾篇
- Linux操作系统性能监测:内存篇(ZZ)
- Android学习系列(32)--App调试内存泄露之Cursor篇