我有非常多的文件集合,我的任务是从这个集合中打开几个随机文件,将它们的内容视为一组整数并将其相交。
由于长时间将文件从磁盘读取到内存,这个过程非常慢,所以我想知道这个从文件读取的过程是否可以通过用一些“快速”语言重写我的程序来加速。目前我正在使用python,这对于这种工作可能效率低下。(如果我知道除了 python 和 javascript 之外的其他语言,我可以自己实现测试......)
将所有日期放入数据库是否有帮助?无论如何,文件都不适合 RAM,因此它将再次从磁盘读取,只有与数据库相关的开销。
文件的内容是长整数列表。90% 的文件非常小,不到 10-20MB,但剩下的 10% 大约是 100-200MB。作为输入 a 有文件名,我需要读取每个给定文件中存在的每个文件和输出整数。我试图将这些数据放在 mongodb 中,但这与基于普通文件的方法一样慢,因为我尝试使用 mongo 索引功能并且 mongo 不会将索引存储在 RAM 中。现在我只是剪切了 10% 的最大文件并将其余部分存储在 redis 中,有时会访问那些大文件。这显然是临时解决方案,因为我的数据会增长而可用的 RAM 量不会。