Czy dobrą praktyką jest tworzenie katalogu w /run/shm(dawniej /dev/shm) i używanie go jako katalogu tymczasowego dla aplikacji?
Tło: Piszę testy czarnej skrzynki dla programu, który robi wiele rzeczy z plikami i katalogami. Dla każdego testu tworzę dużo plików i katalogów, a następnie uruchamiam program, a następnie tworzę oczekiwany zestaw plików i katalogów, a następnie uruchamiam diff do porównania. Mam teraz około 40 testów, których uruchomienie zajmuje już ponad 2 sekundy. Mając nadzieję na przyspieszenie, chcę uruchomić testy w katalogu na jakimś ramdysku.
Badając dysk RAM, natknąłem się na pytanie z odpowiedzią, że można w nim utworzyć katalog /dev/shmi używać go jak katalogu tymczasowego. Po dokładniejszych badaniach natknąłem się na stronę wiki z debiana, stwierdzając, że użycie błędu jest błędem /dev/shm. Powinienem użyć shm_*funkcji. Niestety shm_*funkcje wydają się niedostępne do użycia w skrypcie powłoki.
Teraz jestem zmieszany. Czy można używać /run/shm(wcześniej /dev/shm) jak katalogu tymczasowego?
/tmpjest to bardziej semantyczne. Jeśli Twoi użytkownicy mają wystarczającą ilość pamięci RAM, aby użyć /dev/shmplików tymczasowych do przyspieszenia, to tam go zainstalują. Ale jeśli nie mają wystarczającej ilości pamięci RAM, a zamontowanie jej tam spowalnia komputer, zmuszając wszystkie procesy do korzystania z plików wymiany, wówczas zachowają pamięć RAM na ważniejsze rzeczy i wykorzystają zwykłe miejsce na dysku dla /tmpsystemu plików. Innymi słowy, /tmpjest bardziej strojony.
/tmpdo pamięci współużytkowanej.