【发布时间】:2019-08-17 15:44:21
【问题描述】:
我正在开发一个应用程序,其中我有大量数据不断写入 ram,我正在尝试快速从 ram 中读取数据,并将其写入 NVMe SSD,写入完成后,我重新排队 ram允许写入的空间。
我目前的问题是数据无限期地连续写入,所以最终我的 RAM 不足以容纳所有数据,它必须被读出并存储到磁盘中。由于数据量大,写入速度标准很高(1.5G/s)。
我经常看到 mmap 被提及以提高 I/O 效率,但主要是读取效率,因为它可以防止将大数据复制到 DRAM。所以我想在我的用例中,使用 mmap 将我的 SSD 直接映射为虚拟内存并直接写入它是否比标准 fwrite 更快?
【问题讨论】:
-
试试看。仔细分别对您运营的各个方面进行基准测试,然后将它们放在一起。请注意,如果您以 1.5GB/s 的速度连续无限地写入,您不仅会耗尽 RAM,还会耗尽磁盘...