Чи є хорошою практикою створювати каталог /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в спільну пам'ять.