最近公司有个CS客户端程序,有个登录界面,有个程序的主界面,程序支持注销功能,但是在注销后,客户端的内存一直以40M-50M的速度递增,因此猜测,应该是WPF程序出现了内存泄漏。下面主要记录优化内存泄漏的整个历程:

1.使用VS2013的性能和诊断找到问题点

在VS2013菜单分析-》性能和诊断,打开的界面如下,并勾选内存使用率选项。

单击开始,启动程序,界面如下所示:

登录后,等待程序资源全部获取后,单击VS2013中拍摄快照

注销后,再次单击拍摄快照按钮

重复上述两个步骤若干次后,关闭软件,内存分析工具会自动进行分析,分析后的结果如下图所示:

选择快照报告数据查看依据,托管堆和堆,我写的程序中是在堆中发现快照2比快照会有40多M内存的上升,上面的图片是优化后的。点击上升的内存,可以进入快照1和快照2内存的对比的表格:

从这个前后内存的对比中,找到是由于主界面的在注销时关闭,再次登录后,主界面重新创建显示,里面ocx的内存发生泄漏。

最新文章

  1. Hibernate 分组查询 子查询 原生SQL
  2. Windows 10 for phone 离我们不远了
  3. MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
  4. Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”——HTTP
  5. Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例
  6. Linux中如何新建用户
  7. springMVC整合memcached,以注解形式使用
  8. MYSQL死锁
  9. HTML 5 <details> 标签
  10. ACM/ICPC2014鞍山现场赛E hdu5074Hatsune Miku
  11. Judge loop in directed graph
  12. 10 Django RESTful api 实现匿名访问
  13. 对var的新笔记
  14. jmeter主要函数助手功用说明
  15. luogu 1731 搜索剪枝好题
  16. LOJ#2320 生成树计数
  17. windows7时间同步设置
  18. Liunx-cp命令
  19. Unity3d -> Xcode 多个渠道版本发布文件合并
  20. UVA 10012 How Big Is It?(暴力枚举)

热门文章

  1. wepy中页面的跳转
  2. Python 中Lambda 表达式 实例解析
  3. extjs如何使用
  4. (15)3 kinds of bias that shape your worldview
  5. Codeforces Round #514 (Div. 2) E. Split the Tree(倍增+贪心)
  6. Windows下python环境配置
  7. Mybatis-Plus 实战完整学习笔记(十一)------条件构造器删除,修改,conditon
  8. ERR_CACHE_MISS 上一页提示确认重新提交表单
  9. spring boot和mybatis入门
  10. Docker Compose部署lnmp