เป็นการดีที่จะสร้างไดเรกทอรีใน/run/shm
(ก่อนหน้านี้/dev/shm
) และใช้สิ่งนั้นเช่นไดเรกทอรีชั่วคราวสำหรับโปรแกรมหรือไม่?
พื้นหลัง: ฉันกำลังเขียนการทดสอบกล่องดำสำหรับโปรแกรมที่ทำสิ่งต่าง ๆ มากมายด้วยไฟล์และไดเรกทอรี สำหรับการทดสอบทุกครั้งฉันสร้างไฟล์และไดเรกทอรีจำนวนมากจากนั้นเรียกใช้โปรแกรมแล้วสร้างชุดไฟล์และไดเรกทอรีที่คาดหวังจากนั้นเรียกใช้ diff เพื่อเปรียบเทียบ ตอนนี้ฉันมีการทดสอบประมาณ 40 ครั้งและพวกเขาใช้เวลาในการรัน 2 วินาที หวังว่าจะเร่งความเร็วฉันต้องการรันการทดสอบในไดเรกทอรีบน ramdisk บางประเภท
การค้นคว้าเกี่ยวกับ ram disk ฉันสะดุดกับคำถามด้วยคำตอบที่ระบุว่าไม่เป็นไรในการสร้างไดเรกทอรี/dev/shm
และใช้งานเช่นเดียวกับไดเรกทอรีชั่วคราว ค้นคว้าเพิ่มเติมอีกเล็กน้อยแต่ฉันเจอหน้า wikiจาก debian ที่ระบุว่าเป็นข้อผิดพลาดในการใช้/dev/shm
โดยตรง ฉันควรใช้shm_*
ฟังก์ชั่น น่าเสียดายที่shm_*
ฟังก์ชั่นดูเหมือนจะไม่สามารถใช้งานได้ในเชลล์สคริปต์
ตอนนี้ฉันสับสน มันโอเคหรือไม่ที่จะใช้/run/shm
(เดิม/dev/shm
) เหมือนไดเรกทอรีชั่วคราวหรือไม่?
/tmp
มันมีความหมายมากกว่า หากผู้ใช้ของคุณมี RAM เพียงพอสำหรับการใช้/dev/shm
งานไฟล์ชั่วคราวเพื่อเร่งความเร็วพวกเขาจะติดที่นั่น แต่ถ้าพวกเขามี RAM ไม่เพียงพอและติดตั้งมันจะทำให้คอมพิวเตอร์ช้าลงโดยบังคับให้กระบวนการทั้งหมดใช้ไฟล์ swap จากนั้นพวกเขาก็จะบันทึก ram ของพวกเขาสำหรับสิ่งที่สำคัญกว่านั้นและใช้พื้นที่ดิสก์ธรรมดาสำหรับ/tmp
ระบบไฟล์ กล่าวอีกนัยหนึ่ง/tmp
คือปรับได้มากขึ้น
/tmp
ในหน่วยความจำที่แชร์