¿Es una buena práctica crear un directorio en /run/shm
(anteriormente /dev/shm
) y usarlo como un directorio temporal para una aplicación?
Antecedentes: estoy escribiendo pruebas de recuadro negro para un programa que hace muchas cosas con archivos y directorios. Para cada prueba creo muchos archivos y directorios y luego ejecuto el programa y luego creo el conjunto esperado de archivos y directorios y luego ejecuto diff para comparar. Ahora tengo alrededor de 40 pruebas y ya están tardando más de 2 segundos en ejecutarse. Con la esperanza de acelerar las cosas, quiero ejecutar las pruebas en un directorio en algún tipo de ramdisk.
Al investigar sobre el disco RAM, me topé con una pregunta con una respuesta que decía que está bien crear un directorio /dev/shm
y usarlo como un directorio temporal. Investigando un poco más, sin embargo, me topé con una página wiki de Debian que indica que es un error usar /dev/shm
directamente. Debería usar las shm_*
funciones. Lamentablemente, las shm_*
funciones parecen no estar disponibles para su uso en un script de shell.
Ahora estoy confundido. ¿Está bien o no usar /run/shm
(anteriormente /dev/shm
) como un directorio temporal?
/tmp
es más semántico. Si sus usuarios tienen suficiente memoria RAM para usar /dev/shm
archivos temporales para acelerar las cosas, entonces lo montarán allí. Pero si no tienen suficiente ram, y montarlo allí ralentiza su computadora al obligar a todos los procesos a usar archivos de intercambio, entonces guardarán su ram para cosas más importantes y usarán espacio en disco ordinario para el /tmp
sistema de archivos. En otras palabras, /tmp
es más sintonizable.
/tmp
en la memoria compartida.