RAMdisk比磁盘慢吗?

Mar*_*ell 11 performance file ramdisk

我创建的python程序是IO有界的.大多数时间(超过90%)花费在单个循环中,重复约10,000次.在这个循环中,生成~100KB的数据并写入临时文件; 然后由另一个程序读回,并收集有关所收集数据的统计数据.这是将数据传递到第二个程序的唯一方法.

由于这是主要的瓶颈,我认为将临时文件的位置从我的主硬盘移动到(~40MB)RAMdisk(超过2GB的可用RAM内)将大大提高该文件的IO速度,从而减少运行时.但是,我获得了以下结果(每次平均超过20次运行):

  • 测试数据1:没有RAMdisk - 72.7s,RAMdisk - 78.6s
  • 测试数据2:没有RAMdisk - 223.0s,RAMdisk - 235.1s

看起来RAMdisk比我的HDD慢.

可能是什么导致了这个?

有没有其他替代方法使用RAMdisk以获得更快的文件IO?

小智 4

您的操作系统几乎肯定已经缓冲/缓存磁盘写入。RAM 磁盘的性能如此接近也就不足为奇了。

在不确切知道您在写什么或如何写的情况下,我们只能提供一般性建议。一些想法:

  • 如果您有 2 GB RAM,那么您可能拥有一个不错的处理器,因此您可以将此数据写入具有压缩功能的文件系统。这将以 I/O 操作换取 CPU 时间(假设您的数据适合这样做)。

  • 如果您正在写很多小文章,请将它们组合起来一次写出更大的文章。(可以看看源代码吗?)

  • 使用后是否删除 100 KB 文件?如果您不需要它,请删除它。否则操作系统可能会被迫将其刷新到磁盘。