您的位置: 网站首页> 大家问> 当前文章

cmd下运行python程序卡死解决

老董2020-11-07152围观,113赞

  在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。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    cmd下运行python程序卡死解决文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200