免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sammyjeep
打印 上一主题 下一主题

关于Perl中hash 使用内存大小的求助。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-11-19 21:41 |只看该作者
回复 10# zhlong8


    非常感谢,我今天也在一个英文论坛看到了这个模块的,正下来试试。

   1:10的是一个非常大的消耗了,在处理大文件的时候受到了不少的限制,希望最终测试的结果是一个可以接受的范围,呵呵。再次感谢。

论坛徽章:
0
12 [报告]
发表于 2012-11-19 21:42 |只看该作者
aku1 发表于 2012-11-19 17:44
看看类似ulimit 的参数

和ulimit没有什么关系,这一点我在之前已经排除掉了,呵呵,还是多谢。

论坛徽章:
0
13 [报告]
发表于 2012-11-19 21:46 |只看该作者
mcshell 发表于 2012-11-19 20:57
大文件不要用split,不相信拿个5G以上的文件试试看。你会知道 regex比他快的多

两者各有千秋,split时一行有十个分割符和一行有一百个分割符性能也是天差地别。大多数性能下,性能差的不是函数,而是写代码的人,呵呵~~

在一些小脚本中split用起来方便,可读性(对于不精通RE的人^_^)也高一点。

论坛徽章:
0
14 [报告]
发表于 2012-11-19 21:49 |只看该作者
zhlong8 发表于 2012-11-19 21:19
hash 本身浪费不了多少无非就是槽多点,即使用 C 写也是必须的。浪费内存的主要还是字符串,32位系统下一个 ...


哦,还要说明一下,之前分析的时候,我已经考虑到负载因子的作用,内存的确是要浪费的,不过另一个问题我一直都想不通,为什么Value中存放一个值和存放多个值内存会差不多?如果是使用C++自行实现,这两种情况使用的内存应该还是有很大差别的。

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
15 [报告]
发表于 2012-11-19 21:56 |只看该作者
回复 11# sammyjeep


    字符串并不是占用多少就分配多少,以前应该是按指数增长的一组数字,多余部分用做缓冲区一般的字符串操作就可以省掉内存分配的操作,现在增长速度没那么快了。

    如果你估计 16G 内存用 C 可以解决也可以用 C 来写个数据结构,给 Perl 提供几个函数如 create insert fetch free 做接口也是很好的。当然这东西 CPAN 上肯定有

论坛徽章:
0
16 [报告]
发表于 2012-11-19 22:38 |只看该作者
zhlong8 发表于 2012-11-19 21:56
回复 11# sammyjeep

我正在测试,数据结构本身的确占用了比较多的内存,比如一个字符串,数据结果本身就要使用40个Bytes,Perl的内存消耗的确非常夸张,一个最简单的Hash也要将近300个Bytes,主要也是消耗在数据结构本身的,看来为了实现高速的访问和便利的接口,内存的确是不记成本的,呵呵。
非常感谢zhlong8的解惑,还有各位的回复,多谢多稿。

论坛徽章:
0
17 [报告]
发表于 2012-11-20 11:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
18 [报告]
发表于 2012-11-21 12:09 |只看该作者
sammyjeep 发表于 2012-11-19 16:57
最近在使用Perl开发脚本,目前是把数据一次性都从文件中读出来放到Hash中,再传给定义的子过程。

有一次 ...

今天又学习了一招,可以通过Develeek打印出里面的一些内部结构,HOHO。越来越光明。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP