È buona norma creare una directory /run/shm
(precedentemente /dev/shm
) e usarla come una directory temporanea per un'applicazione?
Sfondo: sto scrivendo test in scatola nera per un programma che fa un sacco di cose con file e directory. Per ogni test creo molti file e directory e quindi eseguo il programma e quindi creo il set previsto di file e directory e quindi eseguo diff per confrontare. Ora ho circa 40 test e stanno già impiegando più di 2 secondi per essere eseguiti. Sperando di velocizzare le cose, voglio eseguire i test in una directory su una specie di ramdisk.
Facendo delle ricerche su ram disk mi sono imbattuto in una domanda con una risposta affermando che va bene creare una directory /dev/shm
e usarla come una directory temporanea. Facendo qualche ricerca in più, tuttavia, mi sono imbattuto in una pagina wiki di Debian affermando che è un errore da usare /dev/shm
direttamente. Dovrei usare le shm_*
funzioni. Sfortunatamente le shm_*
funzioni sembrano non essere disponibili per l'uso in uno script di shell.
Ora sono confuso. Va bene o non usare /run/shm
(precedentemente /dev/shm
) come una directory temporanea?
/tmp
sia più semantico. Se i tuoi utenti hanno RAM sufficiente per l'utilizzo /dev/shm
di file temporanei per velocizzare le cose, allora lo monteranno lì. Ma se non hanno abbastanza RAM, e il montaggio lì rallenta il loro computer costringendo tutti i processi a usare i file di scambio, quindi salveranno la loro RAM per cose più importanti e useranno lo spazio su disco ordinario per il /tmp
filesystem. In altre parole, /tmp
è più sintonizzabile.
/tmp
nella memoria condivisa.