/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
系统调用?