需要有关perl内存使用的建议

需要有关perl内存使用的建议,第1张

概述我不是perl的新手,但我无法解决这个问题. 这是我的问题陈述: 我正在使用Activestate perl 5.12 32位.我希望一次在内存中保留一些32 x 8MB的双重数组.不幸的是,在这种情况下我得到了“内存不足”的错误.例如,下面的代码将导致内存不足. my $aref1 = [(.25) x (8*1024*1024)];my $aref2 = [(.25) x (8*1024*1 我不是perl的新手,但我无法解决这个问题. @H_403_7@

@H_403_7@这是我的问题陈述:

@H_403_7@我正在使用Activestate perl 5.12 32位.我希望一次在内存中保留一些32 x 8MB的双重数组.不幸的是,在这种情况下我得到了“内存不足”的错误.例如,下面的代码将导致内存不足.

@H_403_7@

my $aref1 = [(.25) x (8*1024*1024)];my $aref2 = [(.25) x (8*1024*1024)];my $aref3 = [(.25) x (8*1024*1024)];my $aref4 = [(.25) x (8*1024*1024)];my $aref5 = [(.25) x (8*1024*1024)];my $aref6 = [(.25) x (8*1024*1024)];my $aref7 = [(.25) x (8*1024*1024)];my $aref8 = [(.25) x (8*1024*1024)];my $aref9 = [(.25) x (8*1024*1024)];my $aref10 = [(.25) x (8*1024*1024)];
@H_403_7@有没有办法有效地处理它?

@H_403_7@注意:在任何情况下,都需要在任何执行时尽快访问数组(因为用户不能等待太久)

@H_403_7@我试过的选项:

@H_403_7@> DBM ::深 – 需要更多时间@H_404_24@> PDL – 为32 x 8MB双倍阵列提供“内存不足”错误

@H_403_7@等待您宝贵的建议

解决方法 32个数组* 8个Mi-double / array * 8个字节/ double = 2个GiB. @H_403_7@

@H_403_7@windows上的32位进程只有2GiB的可用地址空间.您的原始数据将占用所有可用的地址空间,不会为数据结构的开销,perl,程序和其他变量留下任何内容.它适合内存的唯一方法是切换到64位Perl.否则,您将不得不面对必然较慢的解决方案.

总结

以上是内存溢出为你收集整理的需要有关perl内存使用的建议全部内容,希望文章能够帮你解决需要有关perl内存使用的建议所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存