网站首页 > 主流语言 > python 正文
python开发的程序内存越来越大_遇到个python进程占用内存太多的问题 | 数据,更懂人心...
longtao100 2022-04-22 16:12:48 python 511 ℃ 0 评论在几个前辈的影响下,也开始用起了python,上手较快,并且觉得内存回收这些个烦心事自己也不用过问,自有解释器来完成。直到开始抓取某吧的帖子时才遇到问题。
抓取的思路很简单:获取某个分类下的所有的吧; 获取某个吧下的所有帖子;获取某个帖子的所有回复页。并且上面的每个步骤都是一个单独的接口实现。但是程序跑起来总是被莫名杀掉,并且dmesg查看会有“out of memory”的信息,应该是进程占用内存太大,被系统强制停掉。想着觉得不可思议,估算下,一个帖子只存储link和anchor,平均算上256byte,一个吧最多500w帖子,才用1G+多些,怎么会在一台16G的机器上down掉的呢(该机器虽然有其他程序,但每次进程退出时至少都占用了7G+).
于是开始找了些python的内存检测相关的工具和说明的页面看了看。
工具方面:
1、尝试valgrind检查,”确实看到很多xx are still reachable”的日志,而且这个xx数字越往后越大,囧。但是这些trace都是python解释器调用底层接口,也无法看懂(有个网页说到python2.x解释器可能存在内存泄露但还是先从自己程序找问题)。
2、cprofile分析:输出文件里有各个接口的调用次数和平均处理时间之类的,更像是解决性能的辅助工具。
3、尝试用gc模块的gc.collect接口进行强制的内存回收,没有效果。
4、尝试meliae:在上面的每次循环处理之后打印各个对
- 上一篇: Selenium Python3 请求头配置
- 下一篇: 手把手教你Charles抓包工具使用
猜你喜欢
- 2023-09-22 Python爬虫原理与基本请求库urllib详解
- 2023-09-22 python自动化神器pyautogui使用步骤
- 2023-09-22 Python ModuleNotFoundError: No module named ‘xxx‘可能的解决方案大全
- 2023-09-22 如何查看Python安装了哪些包
- 2023-09-22 Python-Web框架flask使用示例教程
- 2023-08-31 我入职阿里后,才知道原来简历这么写
- 2023-08-27 Python中的list内for循环小技巧
- 2023-06-10 爱心代码编程Python,让世界更美好
- 2023-06-10 Python必备!最好用的5个库,千万别错过!
- 2022-04-26 (1)python+selenium第一个自动化脚本:实现打开百度首页并搜索selenium
本文暂时没有评论,来添加一个吧(●'◡'●)