蜘蛛屑不会释放物品的记忆

2024-05-29 03:44:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用scrapy从不同的来源提取一些数据,效果非常好 但是现在我已经编写了一个spider来从一个大的XML文件(大约100MB=>;40000个条目)中提取数据。在

我用的是发霉的XMLFeedSpider。在

问题是scrapy使用了大量内存(1GB或更大),我不知道它为什么不发布我的物品使用的备忘录。在

当我使用scray的trackrefs工具(通过telnet连接到我的spider)时,我得到以下输出:

  >>> prefs()
  Libxml2Document                     2   oldest: 160s ago
  CustomName                          1   oldest: 163s ago
  XmlResponse                         1   oldest: 161s ago
  XmlXPathSelector                    1   oldest: 0s ago
  Request                             1   oldest: 163s ago
  CustomName                          38893   oldest: 150s ago

我已禁用所有项目管道。在

在我的蜘蛛中,我不保留任何项目的引用,我只是创建项目并返回它们。 我找不到内存泄露的地方。。。在

有没有解释为什么我的物品没有被放行?在


Tags: 文件数据项目内存gt来源条目xml
1条回答
网友
1楼 · 发布于 2024-05-29 03:44:25

根据“prefs”的输出,它的第一列是类名,Scrapy没有名为“CustomName”的类。这个名称看起来像XML字段中的某个列。再者,你有没有看到这两条奇怪的线:

CustomName                          1   oldest: 163s ago
CustomName                          38893   oldest: 150s ago

意思是“不同的类,但名称相同”。你应该发布你的代码。我猜你的项目类刚刚命名为“CustomName”。在

相关问题 更多 >

    热门问题