您的位置: 网站首页> 大家问> 当前文章
cmd下运行python程序卡死解决
老董2020-11-07162围观,100赞
在cmd下运行python程序卡死,前几年就遇到过类似问题,现在来还原下解决过程。
所运行的程序:搜索引擎关键词排名监控程序(多线程的),约3万个词,可以分关键词种类指定多个域名监控进行监控。(关键词文件是从excel中读取的,excel的每个sheet代表关键词种类,每个sheet第一列放关键词,操作excel的库用的是openpyxl)
遇到的问题:windows下cmd窗口中有时候会卡死,有时候又正常,或者A电脑卡死,B电脑征程。
解决的思路:
1 怀疑是cmd本身的bug。
2 怀疑代码层面有问题,程序没有退出,比如某个线程有死循环、或者某个请求没设置timeout超时导致一直阻塞等。
3 怀疑是该进程死掉了。
因为程序有时候正常有时候不正常,通过一些检查可以排除1和2。最大的可能是进程死掉了!在win平台上不好查看某个进程的状态,根据鄙人的知识积累大胆猜测是进程死掉!那么为什么这个python进程会死掉呢?
个人分析是这个程序占用内存太多太久导致操作系统把它干掉了!基于这个假设,在代码里增加了一些内存回收的操作(del和gc模块配合)。具体的操作看图:
单独的del并不能真正删除变量,而是删除了变量的引用,必须结合垃圾回收gc模块手动回收。(ps:这样改进后果然再没有出过问题!把关键词数量增加到了4万也一直没出问题。)
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
文章评论
-
cmd下运行python程序卡死解决文章写得不错,值得赞赏