笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

调试内存泄漏

发布者: 笨鸟自学网



无泄漏泄漏

有时,您可能会注意到您的废进程的内存使用只会增加,但不会减少。不幸的是,即使Scrapy和您的项目都没有泄漏内存,也可能发生这种情况。这是由于Python的一个(不太常见)已知问题造成的,在某些情况下,该问题可能不会将释放的内存返回到操作系统。有关此问题的详细信息,请参阅:

  • Python Memory Management

  • Python Memory Management Part 2

  • Python Memory Management Part 3

Evan Jones提出的改进建议,详情见 this paper 在python 2.5中进行了合并,但这只会减少问题,并不能完全解决问题。引用论文:

不幸的是,这个补丁只能在竞技场中不再分配对象的情况下释放竞技场。这意味着 Scrapy 化是一个大问题。一个应用程序可以有许多兆字节的空闲内存,分散在所有的区域中,但是它将无法释放其中的任何一个。这是所有内存分配器都遇到的问题。解决这个问题的唯一方法是移动到一个压缩垃圾收集器,它能够移动内存中的对象。这将需要对python解释器进行重大更改。

为了保持内存消耗合理,可以将作业拆分为几个较小的作业或启用 persistent job queue 不时停止/启动Spider。

1234

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-12-4 15:52 , Processed in 0.014632 second(s), 17 queries .

© 2001-2020

返回顶部