如何以及何时使用/ dev / shm来提高效率?

/dev/shm如何比在普通文件系统上写文件更有效率? 据我所知, /dev/shm也是硬盘空间,所以读/写速度是一样的。

我的问题是,我有一个96GB的文件,只有64GB的RAM(+ 64GB交换)。 然后,来自同一进程的多个线程需要读取该文件的小随机块(大约1.5MB)。

/dev/shm是一个很好的用例吗?
它会比从/home以只读模式打开文件,然后传递给线程来读取所需的随机块?

你不使用/dev/shm 。 它的存在使得POSIX C库可以通过POSIX API提供共享内存支持。 不是那样你可以在那里戳东西。

如果你想要一个你自己的内存文件系统,你可以在任何你想要的地方安装一个。

mount -t tmpfs tmpfs /mnt/tmp

Linux tmpfs是只存在于RAM中的临时文件系统。 它是通过具有文件缓存来实现的,没有任何磁盘存储。 它将在内存压力下将其内容写入交换文件。 如果你不想交换文件,你可以使用ramfs

我不知道你在哪里使用/dev/shm来提高读取文件的效率,因为这不是它的功能。

也许你正在考虑使用内存映射,通过mmap系统调用?