首页 > 解决方案 > 在Java中读取没有磁盘缓存的文件

问题描述

我正在使用一个无法一次完全加载到 RAM 中的非常大的示例数据集来训练神经网络。为了训练,我从包含数据集的序列化文件列表中读取每个示例。Windows 磁盘缓存在我第一次读取每个示例时将其加载到 RAM 中。通常这会加快对同一文件的后续读取,因为 RAM 比磁盘快,但由于我的数据集太大,当我循环回到它时,文件已从 RAM 中删除,因此没有额外的好处。

我想尽可能地防止 RAM 堆积,因为它会减慢机器上的所有其他进程。目前我能想到的最好的解决方案是为我读取的文件禁用磁盘缓存。这在 Windows 和 Java 中可行吗?我也对替代解决方案持开放态度;任何允许我在没有 RAM 积累的情况下迭代数据集示例的方法。

更新:我试图解决的问题不是由磁盘缓存造成的 RAM 堆积引起的。相反,我的缓慢读取速度是由于我的文件结构不佳造成的。阅读 OP 中的最后一条评论以获取更多详细信息。

标签: javafilecachingmachine-learningread-write

解决方案


推荐阅读