python 处理数据越来越慢_Python运行速度越来越慢,垃圾回收问题?

所以我有一个代码,从一个最初有1400多万个文件的目录中获取一个文件列表。这是一台运行Ubuntu14.04桌面的十六进制内核机器,它的内存为20GB,只需抓取一个文件列表就需要几个小时——我还没有真正计时。在

在过去的一周左右的时间里,我运行的代码只不过是收集这些文件的列表,打开每个文件以确定它是何时创建的,然后根据创建的月份和年份将其移动到一个目录中。(这些文件都是scp'd和rsync'd的,因此操作系统提供的时间戳在这一点上没有意义,因此打开了文件。)

当我第一次开始运行这个循环时,它在90秒内移动了1000个文件。几个小时后,90秒变成了2.5分钟,然后是4秒,5秒,9秒,最后是15分钟。所以我关闭了它,重新开始。在

我注意到今天收集了超过900万个文件的列表后,移动1000个文件需要15分钟的时间。我只是再次关闭进程并重新启动机器,因为移动1000个文件的时间已经攀升到90分钟以上

我曾希望找到一些方法来执行while + list.pop()风格的策略,以便在循环进行时释放内存。然后发现了几个这样的帖子,说可以用for i in list: ... list.remove(...)来完成,但这是个糟糕的主意。在

代码如下:from basicconfig.startup_config import *

arc_dir = '/var/www/data/visits/'

def step1_move_files_to_archive_dirs(files):

"""

:return:

"""

cntr 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值