/dev/shm
如何比在常规文件系统上编写文件更有效率?据我所知,/dev/shm
也是HDD上的空间,因此读/写速度是相同的。
我的问题是,我有96GB文件,只有64GB内存(+ 64GB交换)。然后,来自同一进程的多个线程需要读取文件的小随机块(大约1.5MB)。
/dev/shm
是一个很好的用例吗?
它是否比从/home
以只读模式打开文件然后传递给线程以读取所需的随机块更快?
答案 0 :(得分:5)
您不使用$details = $database_gk->query("SELECT `meta_key`, `meta_value` FROM `fWR6qIN_postmeta` pm WHERE post_id = $pid AND (meta_key like 'product_shops_%_price' OR meta_key like 'product_shops_%_link' OR meta_key like 'product_shops_%_price_old' OR meta_key like 'product_shops_%_shop');";
。它的存在使得POSIX C库可以通过POSIX API提供共享内存支持。不是这样,你可以在那里戳东西。
如果您需要自己的内存文件系统,可以在任何地方安装。
例如, /dev/shm
。
Linux mount -t tmpfs tmpfs /mnt/tmp
是一个仅存在于RAM中的临时文件系统。它通过一个文件缓存实现,后面没有任何磁盘存储。它会在内存压力下将其内容写入交换文件。如果您不想使用交换文件,则可以使用tmpfs
。
我不知道你在哪里使用ramfs
来提高读取文件的效率,因为这根本不是它的作用。
也许您正考虑通过/dev/shm
系统调用来使用内存映射?