Это хорошая практика для создания каталога /run/shm
(ранее /dev/shm
) и использовать его как временный каталог для приложения?
Предыстория: я пишу тесты черного ящика для программы, которая много работает с файлами и каталогами. Для каждого теста я создаю много файлов и каталогов, затем запускаю программу, затем создаю ожидаемый набор файлов и каталогов и затем запускаю diff для сравнения. Сейчас у меня около 40 тестов, и они уже занимают более 2 секунд для запуска. В надежде ускорить процесс Я хочу запустить тесты в каталоге на каком-нибудь виртуальном диске.
Изучая RAM-диск, я наткнулся на вопрос с ответом о том, что можно создавать каталог /dev/shm
и использовать его как временный каталог. Однако, изучив еще кое-что, я наткнулся на вики-страницу из Debian, заявив, что это /dev/shm
прямое использование ошибки . Я должен использовать shm_*
функции. К сожалению, shm_*
функции не доступны для использования в сценарии оболочки.
Теперь я в замешательстве. Это нормально или не использовать /run/shm
(ранее /dev/shm
) как временный каталог?
/tmp
это более семантически. Если у ваших пользователей достаточно оперативной памяти для использования /dev/shm
временных файлов, чтобы ускорить процесс, они подключат его там. Но если им не хватает оперативной памяти, и его установка замедляет работу компьютера, заставляя все процессы использовать файлы подкачки, тогда они сохранят свой оперативную память для более важных задач и используют обычное дисковое пространство для /tmp
файловой системы. Другими словами, /tmp
более настраиваемый.
/tmp
к общей памяти.