记一次上位机软件线程泄露的分析及解决

上位机软件在客户现场隔一段时间说操作了没反应,但是上位机又没死,出现了一些奇怪现象:

  • 左上角的时间不走了(本来是1s运行一次)
  • 使用任务管理器查看,内存占用1.5G,线程有3000多个,正常情况下,线程应该是400个左右,内存500M以内(带的设备比较多)。
    本次分析更关心的是线程泄露,为啥会出现一直线程增加的情况
    解决方法:

1.手动快照内存Dump文件

记一次上位机软件线程泄露的分析及解决_第1张图片

2.直接使用VS2022分析Dump文件

记一次上位机软件线程泄露的分析及解决_第2张图片
选择已经存储的dmp文件,它会联网加载符号
记一次上位机软件线程泄露的分析及解决_第3张图片
点击右上方的运行分析诊断
记一次上位机软件线程泄露的分析及解决_第4张图片
再点击分析按钮
记一次上位机软件线程泄露的分析及解决_第5张图片
下方出现了一些分析。然后逐个单击查看详情。

记一次上位机软件线程泄露的分析及解决_第6张图片
记一次上位机软件线程泄露的分析及解决_第7张图片
从这里大概能发现一些蛛丝马迹,说明是哪个函数出现问题。
最终分析的大概原因是,在线程中大量使用异步代码。后续会把代码贴出来。

你可能感兴趣的:(开发语言,wpf)