一个10G的文件,但是内存只有4G,使用python如何进行性能调优?
有一个jsonline格式的文件file.txt大小约为10K
def get_lines(): with open('file.txt','rb') as f: return f.readlines() if __name__ == '__main__': # 处理每一行数据for e in get_lines(): process(e)
假设现在要处理一个大小为10G的文件,但是内存只有4G,如果在只修改get_lines 函数而其他代码保持不变的情况下,应该如何实现?需要考虑的问题都有那些?
def get_lines(): with open('file.txt','rb') as f: for i in f: yield i
个人认为:还是设置下每次返回的行数较好,否则读取次数太多。
def get_lines(): l = [] with open('file.txt','rb') as f: data = f.readlines(60000) l.append(data) yield l
Pandaaaa906提供的方法
from mmap import mmap def get_lines(fp): with open(fp,"r+") as f: m = mmap(f.fileno(), 0) tmp = 0 for i, char in enumerate(m): if char==b"\n": yield m[tmp:i+1].decode() tmp = i+1 if __name__=="__main__": for i in get_lines("fp_some_huge_file"):print(i)
要考虑的问题有:内存只有4G无法一次性读入10G文件,需要分批读入分批读入数据要记录每次读入数据的位置。分批每次读取数据的大小,太小会在读取操作花费过多时间。
一个10G的文件,但是内存只有4G,使用python如何进行性能调优?相关推荐
- linux打印jvm内存堆栈_5款强大的JVM 性能调优监控工具
原文链接:www.iteye.com/blog/josh-persistence-2161848 现实企业级Java应用开发.维护中,有时候我们会碰到下面这些问题: OutOfMemoryError, ...
- java中数组的内存模型_Java如何在内存有限的情况下实现一个超大数组?jvm性能调优+内存模型+虚拟机原理能解决什么样问题...
在上一篇文章中,小编为您详细介绍了关于<变频器调速问题?三星R458更换CPU>相关知识.本篇中小编将再为您讲解标题Java如何在内存有限的情况下实现一个超大数组?jvm性能调优+内存模型 ...
- hbase原理与实践_HBase 性能调优第一弹:内存篇
这是使用 HBase 最不可避免的一个话题,就是 HBase 的性能调优,而且通常建立在我们对 HBase 内部运行机制比较了解的基础上进行的,因此无论怎么说,调优这块都是一个相对复杂的事情.这一篇我 ...
- rdd数据存内存 数据量_大数据开发-Spark调优常用手段
Spark调优 spark调优常见手段,在生产中常常会遇到各种各样的问题,有事前原因,有事中原因,也有不规范原因,spark调优总结下来可以从下面几个点来调优. 1. 分配更多的资源 分配更多的资源: ...
- 压力机测试软件,一个典型的测试压力机的性能调优过程
原标题:一个典型的测试压力机的性能调优过程 性能测试过程中,不仅仅是对被测系统的性能问题定位.分析.优化,很多时候负责批量请求发起的压力机也存在各类性能瓶颈.毕竟用几千块钱的机器就想把几个亿的机器压瘫 ...
- 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档
精品文档 JVM性能调优解决方案(总结) 一.引言 本文的读者是技术支持人员.阅读本文后,你将理解 jboss 的启动脚本文件 (run.sh )中有一系列的 JVM配置参数的含义,以及如何调整它们, ...
- 服务器内存一般多大_性能调优第一步,搞定服务器硬件选型
服务器选型是Linux性能调优的第一步. 无论你是自行购买服务器进行托管,还是租用服务器,购买云主机,都要面临的一个问题:选择服务器的硬件配置. 我们需要从不同角度.多个方面来决定选择一台什么样的服务 ...
- JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程
2019独角兽企业重金招聘Python工程师标准>>> JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程 博客分类: java jvm 前言: 上一 ...
- eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战
上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题. 环境准备 首先我们先模拟一下内存溢出的场景,以下这段代码在访问 ...
最新文章
- 基于RNN的NLP机器翻译深度学习课程 | 附实战代码
- mysql 查询调试_使用MySQL慢速查询日志进行调试
- linux lddbus设备,Linux那些事儿之我是Sysfs(4)举例一lddbus | 技术部落
- Python----面向对象---主动触发异常-raise
- ASP.NET程序中常用代码汇总(四)
- 零基础学习java------day7------面向对象
- Windows中非常实用的命令
- ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署
- 为什么手机升级系统反应慢了_手机卡顿反应慢怎么解决?久用不卡顿的手机盘点...
- Thread.Sleep太久,界面卡死
- 韩顺平细说jsp购物车项目--用户登录及验证
- GBDT算法原理以及实例理解
- android usb 9008,【2018.1.4更新】X极Qualcomm HS-USB QDLoader 9008救砖的4种方法
- 在线php中文手册,JavaScript中文参考手册
- chm打不开怎么办?
- 初中英语语法(010)-分词
- 卡西欧计算机开机键,卡西欧手表怎么开机
- 全家桶靠边站 用Windows自带功能解决3大难题
- 倚天鸿蒙系统,倚天屠龙记强化系统详解
- 【Excel神技】之 区域命名