忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 743 | 回复: 5

perl大文本处理内存占用问题 [复制链接]

论坛徽章:
0
发表于 2018-09-10 17:57 |显示全部楼层
本帖最后由 Mount_Dew 于 2018-09-10 17:57 编辑

新人请问大家,我有一个6.8G大小的文本文件,每行的内容都是3个数字,一共3亿多行,如下图。现在想把这个文件存入哈希(嵌套哈希),进行后续处理。使用文件句柄<HANDLE>输入,这个大约会占用多少内存呢?
我在公共的服务器上跑了一会儿,占用了20多G,还是没有出结果…… QQ截图20180910175225.png

论坛徽章:
39
技术图书徽章
日期:2018-08-21 13:30:492015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2018-08-21 13:30:242016科比退役纪念章
日期:2018-03-07 11:23:33
发表于 2018-09-11 14:54 |显示全部楼层
为什么要全部导入再处理?
不能按行处理?
6.8G的文件,全读入,估计会用到30多G内存

论坛徽章:
11
子鼠
日期:2014-10-11 16:46:4815-16赛季CBA联赛之山东
日期:2017-11-10 14:32:142016科比退役纪念章
日期:2017-09-02 15:42:4715-16赛季CBA联赛之佛山
日期:2017-08-28 17:11:5515-16赛季CBA联赛之浙江
日期:2017-08-24 16:55:1715-16赛季CBA联赛之青岛
日期:2017-08-17 19:55:2415-16赛季CBA联赛之天津
日期:2017-06-29 10:34:4315-16赛季CBA联赛之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亚冠之萨济拖拉机
日期:2015-05-22 11:38:532016科比退役纪念章
日期:2018-03-16 10:24:05
发表于 2018-09-11 15:27 |显示全部楼层
本帖最后由 523066680 于 2018-09-11 16:09 编辑

不要一次读入内存。
用 DB_File 模块,访问和读写操作都在磁盘进行,只占用少量内存,key/value 对是没问题的,多层镶嵌的哈希表没试过。

查了一下:
https://metacpan.org/pod/DB_File ... tures-with-DB_File?

How do I store complex data structures with DB_File?Although DB_File cannot do this directly, there is a module which can layer transparently over DB_File to accomplish this feat.
Check out the MLDBM module, available on CPAN in the directory modules/by-module/MLDBM.


论坛徽章:
0
发表于 2018-09-11 15:59 |显示全部楼层
7g文本,win+powershell的话,我认为应该占用16g左右的实际内存。具体欢迎测试。
但是对win来说,需要更大的虚拟内存。即使实际用不到那么多内存,win的虚拟内存也要设置很大。最好是自动管理。

论坛徽章:
0
发表于 2018-09-17 14:57 |显示全部楼层
回复 3# 523066680
感谢大佬,我试试。


论坛徽章:
0
发表于 2018-09-17 14:59 |显示全部楼层
回复 2# laputa73
好的。因为后面会需要根据key来查询value……


您需要登录后才可以回帖 登录 | 注册

本版积分规则

【重磅资料】多云网络实战的相关问题汇总!
云网融合的多云网络

本文介绍如何管理私有云数据中心,构建数据中心互联和混合云解决方案。对于OTT 网络架构的深入理解,基本上来源于SIGCOM 的白皮书和一些公开视频。

Overlay SDN 控制器详解

云计算为了适应业务/APP 的快速开发和部署,会把网络分为两层:Overlay 和 Underlay 网络。本文主要讲Overlay网络层面的问题。

超级核心路由器演进

2016 年,网络连接已经采用100G/200G/400G(虽然 400GE 接口技术还未成熟),互联网出口也已经增长到了 T 级别。

获得资料 >>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP