在我的第一个应用程序原型中,我必须从硬盘顺序读取大约 400,000 个文件(每个 4KB 文件,总共大约 1.5 GB 数据),并对从每个文件读取的数据进行一些操作,并将结果存储在 RAM 中。通过这种机制,我是先访问一个文件的I/O,然后再利用CPU进行操作,然后继续访问另一个文件,但过程非常缓慢。
为了解决这个问题,现在我们首先读取所有文件,并将所有文件数据存储在 RAM 中,然后进行操作(利用 CPU)。它带来了显着的改善。
但是在我的第二个开发阶段,我必须读取 20 GB 的数据,现在我无法将这些数据存储在 RAM 中。并且,具有 CPU 利用率的单次读取操作是非常耗时的操作。
有人可以建议一些方法来解决这个问题吗?
我正在使用 C 语言在 Windows 上使用 Visual Studio 编译器开发此应用程序。