python程序会随着feedpar的运行而变慢

2024-04-25 18:18:58 发布

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

我有一个python程序,它在循环中运行,使用feedparser下载20k个RSS提要,并将提要数据插入RDBMS。你知道吗

我观察到,它开始从20-30饲料一分钟,并逐渐放缓。几个小时后,它下降到4-5饲料一小时。如果我杀死程序并从它离开的地方重新启动,吞吐量也是每分钟20-30个feed

当然不是mySQL在放缓。你知道吗

你能提出一些关于这个计划的潜在问题吗?你知道吗

谢谢


Tags: 数据程序feed地方mysql吞吐量计划rss
1条回答
网友
1楼 · 发布于 2024-04-25 18:18:58

问题很可能与记忆有关。您可能正在内存中保存feed,或者以某种方式积累内存,而这些内存没有被垃圾收集。要诊断:

  1. 查看任务的大小(如果是windows,则为taskmanager,如果是unix/Linux,则为top),并在任务随提要增长时对其进行监视。你知道吗
  2. 然后您可以使用内存探查器来计算到底是什么在消耗内存
  3. 一旦你发现你可以编写不同的代码

一些提示:

  1. 执行显式垃圾回收调用(gc.收集())将任何相关的未使用的数据结构设置为空
  2. 使用多处理方案,其中生成多个进程,每个进程处理较少数量的提要
  3. 如果您使用的是32位系统,则可以使用64位系统

关于内存探查器的一些建议:

  1. https://pypi.python.org/pypi/memory_profiler 这个很好,装饰师也很有帮助
  2. https://stackoverflow.com/a/110826/559095

相关问题 更多 >