Ist es empfehlenswert, ein Verzeichnis in /run/shm
(früher /dev/shm
) zu erstellen und dieses wie ein temporäres Verzeichnis für eine Anwendung zu verwenden?
Hintergrund: Ich schreibe Black-Box-Tests für ein Programm, das viel mit Dateien und Verzeichnissen zu tun hat. Für jeden Test erstelle ich viele Dateien und Verzeichnisse und führe dann das Programm aus und erstelle dann den erwarteten Satz von Dateien und Verzeichnissen und führe dann diff aus, um zu vergleichen. Ich habe jetzt ungefähr 40 Tests und die Ausführung dauert bereits mehr als 2 Sekunden. In der Hoffnung, die Dinge zu beschleunigen, möchte ich die Tests in einem Verzeichnis auf einer Art Ramdisk ausführen.
Als ich über RAM-Disk recherchierte, stieß ich auf eine Frage mit der Antwort, dass es in Ordnung ist, ein Verzeichnis zu erstellen /dev/shm
und dieses wie ein temporäres Verzeichnis zu verwenden. Bei weiteren Recherchen bin ich jedoch auf eine Wiki-Seite von Debian gestoßen, die besagt, dass es ein Fehler ist, sie /dev/shm
direkt zu verwenden . Ich sollte die shm_*
Funktionen verwenden. Leider shm_*
scheinen die Funktionen für die Verwendung in einem Shell-Skript nicht verfügbar zu sein.
Jetzt bin ich verwirrt. Ist es in Ordnung oder nicht /run/shm
(früher /dev/shm
) wie ein temporäres Verzeichnis zu verwenden?
/tmp
das semantischer ist. Wenn Ihre Benutzer über genügend RAM verfügen, /dev/shm
um temporäre Dateien zu verwenden, um die Arbeit zu beschleunigen, werden sie ihn dort bereitstellen. Wenn sie jedoch nicht über genügend RAM verfügen und das Mounten dort ihren Computer verlangsamt, indem alle Prozesse zur Verwendung von Auslagerungsdateien gezwungen werden, speichern sie ihren RAM für wichtigere Dinge und verwenden normalen Speicherplatz für das /tmp
Dateisystem. Mit anderen Worten, /tmp
ist besser einstellbar.
/tmp
im gemeinsam genutzten Speicher bereitgestellt .