3
เหตุใดการเปิดไฟล์จึงเร็วกว่าการอ่านเนื้อหาตัวแปร
ในbashสคริปต์ฉันต้องการค่าต่าง ๆ จาก/proc/ไฟล์ จนถึงตอนนี้ฉันมีหลายสิบบรรทัด grepping ไฟล์โดยตรงเช่นนั้น: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo ในความพยายามที่จะทำให้มีประสิทธิภาพมากขึ้นฉันบันทึกเนื้อหาของไฟล์ไว้ในตัวแปรแล้วทำสิ่งต่อไปนี้: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' แทนที่จะเปิดไฟล์หลายครั้งควรเปิดเพียงครั้งเดียวและ grep เนื้อหาตัวแปรซึ่งฉันคิดว่าน่าจะเร็วกว่า - แต่อันที่จริงมันช้ากว่า: bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ …