我对 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 双精度数组的“内存不足”错误
期待您的宝贵建议!