Est-ce une bonne pratique de créer un répertoire dans /run/shm
(anciennement /dev/shm
) et de l'utiliser comme un répertoire temporaire pour une application?
Contexte: J'écris des tests de boîte noire pour un programme qui fait beaucoup de choses avec des fichiers et des répertoires. Pour chaque test, je crée un grand nombre de fichiers et de répertoires, puis j'exécute le programme, puis je crée l'ensemble de fichiers et de répertoires attendu, puis j'exécute diff pour comparer. J'ai maintenant environ 40 tests et ils prennent déjà plus de 2 secondes à courir. En espérant accélérer les choses, je veux exécuter les tests dans un répertoire sur une sorte de disque virtuel.
En recherchant sur le disque RAM, je suis tombé sur une question avec une réponse indiquant qu'il est correct de créer un répertoire /dev/shm
et de l'utiliser comme un répertoire temporaire. En recherchant un peu plus, je suis tombé sur une page wiki de Debian déclarant que c'est une erreur à utiliser /dev/shm
directement. Je devrais utiliser les shm_*
fonctions. Malheureusement, les shm_*
fonctions ne semblent pas disponibles pour une utilisation dans un script shell.
Maintenant je suis confus. Est-il correct ou non d'utiliser /run/shm
(anciennement /dev/shm
) comme un répertoire temporaire?
/tmp
c'est plus sémantique. Si vos utilisateurs ont suffisamment de RAM pour utiliser /dev/shm
des fichiers temporaires pour accélérer les choses, ils le monteront là-bas. Mais s'ils n'ont pas assez de RAM, et le monter ralentit leur ordinateur en forçant tous les processus à utiliser des fichiers d'échange, ils enregistreront leur RAM pour des choses plus importantes et utiliseront l'espace disque ordinaire pour le /tmp
système de fichiers. En d'autres termes, /tmp
est plus ajustable.
/tmp
dans la mémoire partagée.