在/run/shm
(以前/dev/shm
)中创建目录并将其像临时目录一样用于应用程序是一种好习惯吗?
背景:我正在为一个程序编写黑匣子测试,该程序对文件和目录做了很多工作。对于每次测试,我都会创建很多文件和目录,然后运行程序,然后创建预期的文件和目录集,然后运行diff进行比较。我现在有大约40个测试,它们已经花费了2秒钟以上的时间来运行。希望加快速度,我想在某种虚拟磁盘上的目录中运行测试。
在研究ram磁盘时,我偶然发现了一个带有答案的问题,指出可以在其中创建目录/dev/shm
并像临时目录一样使用该目录。然而,研究了更多内容后,我偶然发现了来自debian 的Wiki页面,指出/dev/shm
直接使用是错误的。我应该使用这些shm_*
功能。不幸的是,这些shm_*
功能似乎无法在Shell脚本中使用。
现在我很困惑。是否可以像/run/shm
以前/dev/shm
那样使用temp目录?
/tmp
是更多的语义。如果您的用户有足够的内存用于存储/dev/shm
临时文件以加快处理速度,则可以将其安装在此处。但是,如果他们没有足够的内存,并通过强制所有进程使用交换文件来将其安装在计算机上,则它们会降低计算机的速度,那么他们将为更重要的事情保存内存,并为/tmp
文件系统使用普通的磁盘空间。换句话说,/tmp
是可调的。
/tmp
到共享内存中。