我如何在运行rust二进制文件之间保持内存中的文件?



在开发和测试时,我有一个非常大的文件需要加载到内存中。每次运行程序大约需要20秒。

是否有一种方法可以将文件保存在内存中,这样它就不需要每次都加载?

这取决于你对"已加载"&;的定义。

如果你指的是将数据从存储器传输到ram,这或多或少是你的操作系统的IO缓存已经应该做的,假设你有足够的空闲内存,并且你没有使用绕过缓存的方法。

在linux上,它被称为页面缓存,你可以通过fincore检查一个文件是否在缓存中。或者您可以通过echo 3 > /proc/sys/vm/drop_caches模拟缓存的冷状态,这将删除其内容(需要root)。

如果你的意思是将字节从操作系统的缓存移动到你的应用程序中,那么只要你为读调用使用足够大的块大小或使用mmap,这应该不会花费太多时间。后者是一把双刃剑,如果使用不当,它实际上会导致减速。

如果你的意思是将字节解码成特定于应用程序的逻辑,那么这不是IO,而是反序列化。

相关内容

  • 没有找到相关文章

最新更新