Чи є хорошою практикою створювати каталог /run/shm
(раніше /dev/shm
) і використовувати його, як тимчасовий каталог для програми?
Передумови: Я пишу тести чорної скриньки для програми, яка робить багато матеріалів з файлами та каталогами. Для кожного тесту я створюю багато файлів і каталогів, а потім запускаю програму, а потім створюю очікуваний набір файлів і каталогів, а потім запускаю diff для порівняння. Зараз у мене близько 40 тестів, і вони вже займають більше 2 секунд для запуску. Сподіваючись прискорити роботу, я хочу запустити тести в каталог на якомусь ramdisk.
Досліджуючи ram-диск, я натрапив на запитання, у якому відповів, що добре створити каталог /dev/shm
і використовувати його, як тимчасовий каталог. Досліджуючи ще кілька, проте я натрапив на сторінку wiki з debian, заявивши, що це помилка /dev/shm
безпосередньо використовувати . Я повинен використовувати shm_*
функції. На жаль, shm_*
функції, здається, недоступні для використання в сценарії оболонки.
Тепер я розгублений. Це добре чи не використовувати /run/shm
(раніше /dev/shm
) як тимчасовий каталог?
/tmp
це більш смислово. Якщо у ваших користувачів достатньо оперативної пам’яті для використання /dev/shm
тимчасових файлів для прискорення роботи, вони зможуть встановити її там. Але якщо у них не вистачає оперативної пам’яті, а встановлення його там уповільнює роботу комп'ютера, змушуючи всі процеси використовувати файли свопу, тоді вони зберігають свій оперативної пам’яті для більш важливих речей і використовують звичайний дисковий простір для /tmp
файлової системи. Іншими словами, /tmp
є більш налаштованим.
/tmp
в спільну пам'ять.