【发布时间】:2014-09-24 00:12:19
【问题描述】:
我有大约 1 亿行,例如:
A : value of A
B : value of B
|
|
|
Z : value of Z upto 100 million unique entries
目前,每次运行程序时,我都会将整个文件作为哈希加载,这需要一些时间。在运行时,我需要访问 A,B 的值,因为我知道 A,B 等。
我想知道是否可以进行一次哈希并将其存储为二进制数据结构或索引文件。用最少的编程在 perl 中可能发生什么。
谢谢! -阿比
【问题讨论】:
-
perl -e'++$h{$_} for 1..100_000_000;'对我来说需要 7 秒。这实际上相当快。我认为您的代码可能对您来说很慢,因为您的内存不足,因此求助于使用虚拟内存。最适合您的解决方案可能是不需要您将整个数据集加载到内存中的解决方案(例如数据库解决方案)。 -
你是对的,在使用 Storable 模块时我发现我正在达到内存限制。在生产数据集中,我有 500 行。我想我需要使用基于数据库的解决方案。