python为什么读取大文件越来越慢

  介绍

这篇文章主要介绍python为什么读取大文件越来越慢,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

python主要应用领域有哪些

1,云计算,典型应用OpenStack.2,网前端开发,众多大型网站均为python开发。3。人工智能应用,基于大数据分析和深度学习而发展出来的人工智能本质上已经无法离开python.4,系统运维工程项目,自动化运维的标配就是python + Django/flask.5,金融理财分析,量化交易,金融分析。6,大数据分析。

<强>背景:

今天同事写代码,用python读取一个四五百兆的文件,然后做一串逻辑上很直观的处理。结果处理了一天还没有出来结果。问题出在哪里呢?

<强>解决:

1。同事打印了在不同时间点的时间,在需要的地方插入如下代码:

print  time.strftime (& # 39; Y % - % - % d  % H: % m: % & # 39;, time.localtime (time.time ()))

发现一个规律,执行速度到后面时间越来越长,也就是处理速度越来越慢。

2。为什么会越来越慢呢?

1)可能原因,GC的问题,有篇文章里面写,python列表附加的时候会越来越慢,解决方案是禁止GC:

使用gc.disable()和gc.enable ()

, 2)改完上面,仍然不行,然后看到一篇文章里面写,可能是因为git导致的,因为附加的时候git会不断同步,会出问题,于是删除.文件夹,结果还是不行。

3)继续查询,发下一个及其有可能出问题的地方.dict的在dict.key(),判断键是否在dict里面,这个的效率是非常低的。看到一篇文章比较了效率:

,,,,,,,,,①使用,在dict.keys()效率:

 python为什么读取大文件越来越慢

,,,,,,,,,②使用has_key (),效率:

 python为什么读取大文件越来越慢”> <br/> </p> <p>发现has_key()效率比较稳定。于是修改,问题解决。<br/> </p> <p> <强>后话:</强> <br/> </p> <p>最初的时候,的确是使用has_key(),结果后面上传代码的时候,公司代码检查过不了,提示不能使用这个函数,只能改在dict.key成()这种方式,为什么公司不让这么传呢?经过一番百度,发现原因所在:在python3中,直接将has_key()函数给删除了,所以禁止使用。那禁止了该怎么办呢?原来的python中很智能,能自动判断键是否在字典中存在。所以最正规的做法不是has_key (),,,更不是在dict.keys(),而在dict又是是;判断键在地图中,千万别用在dict.keys () ! ! ! <br/> </p> <p>附录:</p> <p>,在dict.keys (), has_key()方法实战对比:</p> <pre类=在祝辞祝辞,a =,{& # 39;名字# 39;:“tom",, & # 39;年龄# 39;:10,& # 39;电话# 39;:110}   ,在的在的在一个   {& # 39;年龄# 39;:,10日,& # 39;电话# 39;:,110年,& # 39;名字# 39;:,& # 39;汤姆# 39;}   在祝辞祝辞,print  & # 39;年龄# 39;一个拷贝   真正的   在祝辞祝辞,print  & # 39;年龄# 39;,a.keys拷贝()   真正的   在在在   在祝辞祝辞,print  a.has_key (“age")   真正

以上是“python为什么读取大文件越来越慢”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

python为什么读取大文件越来越慢