欢迎光临
我的个人博客网站

如何定位程序占用内存过大问题-程序内存/CPU占用分析

背景

  在做软件项目时,系统产品上线运行一段时间后。有时莫名其妙写的程序会吃很大内存或占用很大CPU,而在生产环境中又无法断点查看怎么办?这时候就急需定位是程序中哪块写的有问题,是持有的资源没释放、还是某对象或集合数据量过大?

  1. 内存占用分析:

  通常做法是首先需要收集运行程序的转储文件(*DMP),该文件记录程序的运行状态信息。可供我们分析。这里我用的是JetBrains dotMemory软件,可以通过DMP文件来分析程序的内存占用情况,如下图软件需要的话可以网上自行下载

如何定位程序占用内存过大问题-程序内存/CPU占用分析

注意转储文件需要32位任务管理器收集,先创建32位任务管理器快捷方式到桌面便于使用:

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

 如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

进入32位任务管理器

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

 如何定位程序占用内存过大问题-程序内存/CPU占用分析

到指定目录复制该文件

 如何定位程序占用内存过大问题-程序内存/CPU占用分析

复制收集指定.DMP文件

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

 打开JetBrains dotMemory软件

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

导入DMP文件

 如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

 如上图所示,可以看出当前程序变量内存占用及层次结构。

2.CPU占用分析:

CPU分析可采用JetBrains dotTrace,CPU占用分析比较简单,可以直接远程挂载需要分析的程序或者本地的程序

如何定位程序占用内存过大问题-程序内存/CPU占用分析

 

 CPU分析过程比较简单这里就不在复述

完毕!

 

赞(0) 打赏
未经允许不得转载:张拓的天空 » 如何定位程序占用内存过大问题-程序内存/CPU占用分析
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏