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


背景

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

  1. 内存占用分析:

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

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

 

 

 

进入32位任务管理器

 

 

到指定目录复制该文件

 

复制收集指定.DMP文件

 

 打开JetBrains dotMemory软件

 

导入DMP文件

 

 

 

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

2.CPU占用分析:

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

 

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

完毕!

 

文章来源:https://www.cnblogs.com/ToufuLemon/p/15758970.html

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:C# asp.net mvc 创建虚拟目录
下一篇:基于欧姆龙PLC#FinsTcp协议上位机通讯(二)-C#通讯模块开发
评论列表

发表评论

评论内容
昵称:
关联文章

如何定位程序占用内存问题-程序内存/CPU占用分析
记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析
记一次 WinDbg 分析 .NET 某工厂MES系统 内存泄漏分析
记一次 .NET 某妇产医院 WPF内存溢出分析
记一次 .NET 某智能交通后台服务 CPU爆高分析
记一次 .NET 某消防物联网 后台服务 内存泄漏分析
.NET 高效依赖注入:使用 Lazy<T> 和工厂模式优化性能与内存占用
利用Windbg分析Magicodes.IE一次错误编写导致内存剧增
解决new Thread().Start导致高并发CPU 100%的问题
AI时代你都用哪些模型?
消息发送时的问题
修改CPU型号(重启依然有效)
windows查看端口占用情况
记一次 .NET 某化妆品 webapi 卡死分析
CMD运行命令程序自动暂停问题解决
论发展的十关系。总结过去,正视未来!!!
selenium爬虫被检测到 该如何
MemoryCache 如何清除全部缓存?
记一次 .NET 某药品仓储管理系统 卡死分析
如何提升.NET控制台应用体验?

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码