首页 > 其他 > 详细

使用Visual Studio分析dump

时间:2021-09-02 02:09:55      阅读:5      评论:0      收藏:0      [点我收藏+]

最近系统时不时CPU会飙升的百分之九十多甚至百分百,在本地又很难复现问题,无法定位问题出现在哪。

可以用转储文件来保存现场,然后通过分析dump文件可以大概分析出问题的所在

生成转存文件

在CPU飙升时打开任务管理器,找到对应的进程(IIS Worker Process),右键然后点击创建转储文件

技术分享图片

 

 

 

使用Visual Studio打开dump文件

选择要分析的.dmp文件,右键使用vs执行

技术分享图片

 

 

 技术分享图片

 

 

 分析dump文件

可参考微软官方文档:https://docs.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-managed-memory-dump?view=vs-2022

点击右侧操作下的运行诊断分析,选择要分析的选项然后点击分析

技术分享图片

 

 

 点击分析结果可查看具体的分析,包括异常对象以及一些大型对象,可通过检查其中的对象来排除代码是否有不当的使用

技术分享图片

 

 

技术分享图片

 

 由于我们遇到的问题是CPU占用过高的问题,所以着重检查CPU使用率摘要

技术分享图片

 

 可以发现EndProductHandler这个类是使用CPU资源最多的,我们也可以打开并行堆栈来查看方法的调用

技术分享图片

 

 技术分享图片

 

最后通过检查分析EndProductHandler发现有个方法在循环生成某个表,然后没有使用EF的批量新增,再通过阿里云的监控台可以看到CPU飙升的那段时间用户刚好在执行此操作。

至此,先将方法修改成批量新增的方法,等后续再观察下还有没有别的问题。

 

使用Visual Studio分析dump

原文:https://www.cnblogs.com/Cyril-hcj/p/15207214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!