gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:53:21 25 4
gpt4 key购买 nike

我对 perl 并不陌生,但我无法解决这个用例。

这是我的问题陈述:

我正在使用 Activestate perl 5.12 32 位。我想一次在内存中保存一些 32 x 8MB 的 double 数组。不幸的是,在这种情况下,我遇到了“内存不足”错误。例如,下面的代码将导致内存不足。

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)];

有什么办法可以有效地处理它吗?

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

我尝试过的选项:
  • DBM::Deep - 需要更多时间
  • PDL - 为 32 x 8MB double 数组提供“内存不足”错误

  • 期待您的宝贵建议!

    最佳答案

    32 个数组 * 8 个 Mi-doubles/数组 * 8 个字节/double = 2 GiB。

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

    关于perl - 需要有关 perl 中内存使用的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943796/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com