最近编写并运行了一个处理1500万个数据的程序,本来最初每秒可以处理150个左右的数据,预计大概15个小时的时间就可以处理完,晚上的时候就开始运行,本以为等到第二天中午就可以得到结果呢,,,

可是,等我第二天的时候一看,什么???还没处理完,当前的数据处理速度变成了一秒5个左右,然后还需要等待300个小时。

然后就查了一下这个问题,原来同样也有很多人在处理大数据的时候遇到了这个问题,大多数的文章分析的原因都是说由于GC(垃圾回收)造成的性能下降。

Python的垃圾回收机制的工作原理为每个对象维护一个引用计数,每次内存对象的创建与销毁都必须修改引用计数,从而在大量的对象创建时,需要大量的执行修改引用计数操作,对于程序执行过程中,额外的性能开销是令人可怕的。回收的触发时机有两种可能,一是用户主动调用gc.collect(),二是对象数量超过阈值。

所以正是GC拖慢了程序的性能,所以我们可以考虑在处理的时候禁止垃圾回收。

代码:

import gc

gc.disable();

#程序处理部分

gc.enable();

通过这样的改进之后速度确度会有很大的提升。但是又有也会另外的一个问题,内存溢出,由于运行的过程中生成大量的对象,一次使用后就没有了引用,由于关闭了垃圾回收机制,一直存在内存中得不到清理,然后程序的内存使用量越来越大。解决的方法就是定期打开gc.enable()再关闭或者主动调用gc.collect(),这样就可以了。

通过上述的改进后程序确实了很多,可是我的程序还是运行的越来越慢,我都怀疑人生了,

python运行非常慢的解决-python 处理大数据程序运行的越来越慢的问题相关推荐

  1. python运行非常慢的解决-python执行太慢

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 假如 load 完成还没计算,这时候线程切换了,其他线程修改了 a 的值,然后切换 ...

  2. python运行非常慢的解决-python为什么会运行慢

    我们之前一定听有人说过,python的执行速度比其他语言慢. python会运行慢的原因: 1.python是动态性语言不是静态性语言 这是说在python程序执行的时候,编译器不知道变量的类型.图1 ...

  3. Python项目实战:使用PySpark对大数据进行分析

    Python项目实战:使用PySpark对大数据进行分析 大数据,顾名思义就是大量的数据,一般这些数据都是PB级以上.PB是数据存储容量的单位,它等于2的50次方个字节,或者在数值上大约等于1000个 ...

  4. 《Python Spark 2.0 Hadoop机器学习与大数据实战_林大贵(著)》pdf

    <Python+Spark 2.0+Hadoop机器学习与大数据实战> 五星好评+强烈推荐的一本书,虽然内容可能没有很深入,但作者非常用心的把每一步操作详细的列出来并给出说明,让我们跟着做 ...

  5. Python+Flask实现全国、全球疫情大数据可视化(二):网页页面布局+echarts可视化中国地图、世界地图、柱状图和折线图

    文章目录 相关文章 一.实现效果 二.页面布局html+css main.html main.css 三.echarts图表制作 1.全国累计趋势折线图ec_l1.js 2.全国趋势变化折线图ec_l ...

  6. Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合

    Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合 目录 Python版本升级的原因 Text and binary data in P ...

  7. 【Python】dill:解决python的“AttributeError: Can‘t pickle local object”及无法pickle lambda函数的问题

    [Python]dill:解决python的"AttributeError: Can't pickle local object"及无法pickle lambda函数的问题 pyt ...

  8. python在土木工程中的应用_大数据技术及其在土木工程中的应用

    朱之宇 黄程 摘要:随着科技的不断发展,互联网技术的不断革新,信息化时代的到来,各种信息的处理更是十分的复杂,但是随着大数据技术的出现,信息处理的速度和能力变得更强大,一方面大数据能够广泛的应用于各行 ...

  9. 安装mysql程序运行出错_如何解决mysql安装后.net程序运行出错的问题

    如何解决mysql安装后.net程序运行出错的问题 发布时间:2020-09-28 17:43:58 来源:亿速云 阅读:93 作者:小新 小编给大家分享一下如何解决mysql安装后.net程序运行出 ...

最新文章

  1. (完全解决)ValueError: Invalid RGBA argument: 0.2
  2. java 中pc寄存器的作用_既然有PC寄存器,栈帧里的返回地址的作用是什么?
  3. sdut2772 KMP的简单应用
  4. Spark最新的两大研发方向深度学习和结构化流处理
  5. 如何申请outlook.com的邮箱
  6. Android之tint图片着色器
  7. 学成在线--15.课程计划查询
  8. Error: Cannot Determine the location of the VS common tools folder
  9. 基于大数据挖掘----浅谈大数据与大数据挖掘
  10. 安科瑞 【节能学院】电气火灾监控系统在太焦铁路博爱站房项目的应用
  11. 基于docker1.7.03.1单机上部署hadoop2.7.3分布式集群
  12. 餐巾计划(网络流24题之二(模板2))
  13. 数据库索引的分类,类型,索引的优缺点,索引的优化
  14. 既生左,何生曾——曾国藩与左宗棠一生恩怨考
  15. 串口流控制DCB结构体解析及设置
  16. 苹果7无线网怎么连接电脑连接服务器,iPhone7怎么连接Wifi无线网络?苹果iPhone7 wifi和网络流量自动切换吗?...
  17. i9-13900fk搭配z790-p主板出现死机问题解决方法
  18. Codeforces Round #777 (Div. 2)(A~C)
  19. CUDA编程中的gridDim and blockDim
  20. Kubernetes VS Mesos

热门文章

  1. 2022数博会丨迦太利华(自由客)和您“云端”相会
  2. 前端canvas手写签名
  3. 用python画一只皮卡丘_python:画一只会眨眼睛的皮卡丘
  4. Unity 3D开发--Shader入门基础
  5. 福建南平市延平区部分地段被淹
  6. JAVA毕业设计html5健身房信息管理系统计算机源码+lw文档+系统+调试部署+数据库
  7. 有哪些好用的蓝牙耳机推荐?盘点2022年四款好用的蓝牙耳机
  8. Kerberos的部署
  9. 数据链路层六大协议详解
  10. 自定义View的方式给Button或者ImageView添加按键音