社区
Java SE
帖子详情
大于4G的文件如何全部读入内存?[请高手指点]
kcb_bj
2009-11-06 05:35:19
各位好,现在遇到一个大文件处理的问题,需要将大于4G的文件全部读入内存,然后对内存的数据进行检查校验,如果有不符合规则(校验规则比较简单)的数据,则该文件无效。
请问,这应该怎么处理好?(生产环境是64位系统,64G内存小型机)
...全文
769
44
打赏
收藏
大于4G的文件如何全部读入内存?[请高手指点]
各位好,现在遇到一个大文件处理的问题,需要将大于4G的文件全部读入内存,然后对内存的数据进行检查校验,如果有不符合规则(校验规则比较简单)的数据,则该文件无效。 请问,这应该怎么处理好?(生产环境是64位系统,64G内存小型机)
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
44 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunnet2008
2009-12-09
打赏
举报
回复
继续关注
cnyangqi
2009-12-09
打赏
举报
回复
未遇到过的环境^^
tenderuser
2009-12-08
打赏
举报
回复
帮顶,不太懂
gyj20061111
2009-12-08
打赏
举报
回复
不太现实,换种思路
lingchen89
2009-12-08
打赏
举报
回复
为啥 要全部读进去呢 有这个必要么??
crazylaa
2009-12-08
打赏
举报
回复
nio
tuerqizhou
2009-12-08
打赏
举报
回复
是个好问题?
Dazzlingwinter
2009-12-08
打赏
举报
回复
100G的内存你也没必要全部都读到内存吧,比较有比较的办法,但是没必要全读进去啊
sunnet2008
2009-12-08
打赏
举报
回复
关注中 一定要搞明白LZ是什么意思
greenbar
2009-12-08
打赏
举报
回复
输入输出流循环读,一次读是不可能的
superdemon
2009-12-08
打赏
举报
回复
个人认为你根本就不应该考虑怎么样把4G的文件读入内存进行校验,而应该从性能和实际情况来考虑用别的方法来进行校验。比如之前有人说的分段校验,或者文件的MD5码校验。
小灰狼
2009-12-07
打赏
举报
回复
楼主听我一句劝,换一种方式处理你的问题,比考虑如何读4G的文件到内存要能更快解决问题
小瑞
2009-12-07
打赏
举报
回复
我也不知道了
wolf521hf
2009-12-07
打赏
举报
回复
路过 学习
chenluozhi
2009-12-07
打赏
举报
回复
UP 每天回帖即可获得10分可用分!
justinavril
2009-12-07
打赏
举报
回复
用nio的内存隐射文件吧 真没必要一次全读到内存中去
SunFulong
2009-12-07
打赏
举报
回复
使用64位的JVM即可读取4GB+的文件到内存,上限是多少不清楚,但是应该会大于64GB
hy158753228
2009-12-07
打赏
举报
回复
双学习一个新知识点,谢谢!!!
http://hi.baidu.com/kaka888/blog/item/26f59a3dacbb8701baa167fe.html
leesoftware
2009-12-07
打赏
举报
回复
。。。。。。。。。。。。。。。。。
micsolaris
2009-12-01
打赏
举报
回复
上面说那些读几G文件没办法实现的人请去了解下 “内存映射文件”,别在那里说风凉话。就是10几个G照样可以映射到内存,因为用的并不是实际的内存,是虚拟内存。
加载更多回复(24)
内存
不足时,Python读取大
文件
(
4g
内存
读写12g
文件
)
迭代器在运行过程中,仅仅存储当前迭代数据,不将全部数据都缓存在
内存
,访问大量数据时非常节约
内存
。所创建的fr对象是一个迭代器,使用fr.readlines()操作会将csv全部数据一次性
读入
(缓存)
内存
,而直接对fr执行for循环,每次仅仅读取csv
文件
的一条数据。使用Python将数据写入
文件
时,数据不会立即写入
文件
,通常会先存放在缓冲区(Python内部创建),减少访问磁盘的次数(磁盘访问比较慢,导致程序运行变慢)。2、匹配结果写入
文件
时:每隔固定时间将数据写入磁盘,防止大量数据缓存在
内存
。
为Java虚拟机分配堆
内存
大于
机器物理
内存
会怎么样?
对于第一阶段的
内存
申
请
,由于申
请
的是虚拟
内存
,实际上64 位操作系统,进程可以使用 128 TB 大小的虚拟
内存
空间,所以进程申
请
一个远
大于
本机物理
内存
是没问题的,只要不读写这个虚拟
内存
,操作系统就不会分配物理
内存
。另外,当
内存
使用存在压力的时候,会开始触发
内存
回收行为,会把这些不常访问的
内存
先写到磁盘中,然后释放这些
内存
,给其他更需要的进程使用。我们先使用如下命令关闭Swap,然后为虚拟机分配堆的大小为6G,实际上可用的物理
内存
是5.8G,所以不出意外的,
内存
分配失败了。可以看到,程序运行成功。
实用流程图软件Diagram Designer中文版
源码直接下载地址: https://pan.quark.cn/s/426802cc3918 流程图是编程人员整理思路所必需的工具。无论是初学者还是经验丰富的开发者,都离不开它。该流程图支持多语言版本,其中包含中文,用户可以自行进行设置。Diagram Designer设计器是一个基础的矢量图形流程图、图表以及幻灯片编辑工具。它提供了可定制的对象模板(额外的模板可以下载),能够利用大量的数学表达式来绘制基本的图形,同时支持多页面以及多层次的图表,可以导入其他图形格式并具备更多的功能支持。Diagram Designer允许用户创建多种图表样式,涵盖流程图、网络地图、应用程序接口、电子电路以及其他广泛的图形类型。Diagram Designer作为一个矢量图像编辑工具,用于构建流程图、图表和滑动展览。它包含一个可定制的样板和调色板,以及简易的图形绘制功能。支持使用压缩的
文件
格式。它是一个操作简便的矢量图编辑器,可用于绘制流程图、UML图、说明图以及演示文稿。
园区管委会如何有效推进智能制造转型,提升企业竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
ai-hedge-fund(Python)
「ai-hedge-fund(Python)」是开源项目(Python)。项目简介:An AI Hedge Fund Team源码完整,下载解压即可查看使用,适合学习参考、课程设计与二次开发。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章