我正在开发一个应用程序,其中我有大量数据不断写入 ram,我正在尝试快速从 ram 中读取数据,并将其写入 NVMe SSD,写入完成后,我重新排队 ram 空间以允许它正在写。
我目前的问题是数据无限期地连续写入,所以最终我的 RAM 不足以容纳所有数据,它必须被读出并存储到磁盘中。由于数据量大,写入速度标准很高(1.5G/s)。
我经常看到提到 mmap 来提高 I/O 效率,但主要是读取效率,因为它可以防止将大数据复制到 DRAM。所以我想知道在我的用例中,使用 mmap 将我的 SSD 直接映射为虚拟内存并直接写入它是否比标准 fwrite 更快?