今天就来聊聊“色狼五”这事儿。这玩意儿真是把我折腾得够呛,前前后后好几次了,这回算是第五回碰上了,所以我就给它起了这么个代号,好记。
事情是这样的,我手头有个小项目,平时跑得好好的,但时不时就出点幺蛾子。具体表现就是,某个功能模块,用着用着就卡住不动了,界面也僵死,只能强制关掉重来。前几次遇到,我都以为是偶然现象,或者是我操作太快导致的,也就没太当回事,重启一下应付过去了。
这回搞定“色狼五”的过程
但这周,“色狼五”又来了,而且一天之内来了两次。这下我可不能忍了,必须得把它揪出来彻底解决掉。于是我就开始了我的排查过程。
第一步,我先是复现问题。这玩意儿还挺贼,不是每次都稳定出现。我就耐着性子,一遍一遍地模拟之前的操作,大概试了十几次,终于又让它卡死了。现象算是稳定抓到了。
音乐520网站提供热门歌手/热门乐队/经典歌曲合集大全打包下载,点我立即前往》》》经典歌曲合集下载专区
第二步,我就开始分析。卡死的时候,我赶紧打开任务管理器看了看,发现CPU占用不高,内存也没爆,看起来不像硬件资源的问题。那就只能是程序逻辑或者哪里死锁了。
第三步,我开始缩小范围。我把那个出问题的模块相关的代码翻出来看。因为之前几次没深究,代码也没怎么动过。我试着加了些日志,想看看它到底卡死在哪一步。加完日志,重新编译运行,再重复操作,又试了七八次,总算又复现了,看了下日志,发现程序停在一个等待外部响应的地方。
第四步,定位具体原因。既然是等外部响应,那就有两种可能,要么是外部服务挂了,要么是我请求