ฉันกำลังกำหนดรหัสบางเวลาและฉันต้องการที่จะบอกว่าเวลาที่ใช้ไปเป็นเพราะการอ่านข้อมูลจากดิสก์ ฉันไม่เชื่อผลลัพธ์ที่time
ให้ฉัน ตัวอย่างเช่นฉันมีไฟล์ 1.3GB และถ้าฉันเรียกใช้wc
ฉันจะได้รับ
time wc largefile.file
50000000 150000000 1316665179 largefile.file
real 0m26.835s
user 0m18.363s
sys 0m0.495s
อาจไม่ได้ใช้เวลา <0.5 วินาทีในการอ่านไฟล์จากฮาร์ดไดรฟ์เก่าของฉัน
มีวิธีการที่เชื่อถือได้ในการบอกเวลาเท่าไรที่เป็นเพราะ I / O หรือไม่?
time
รายละเอียดเพิ่มเติมสำหรับเหตุผลที่ผมไม่เห็นว่าการตีความ ถ้าฉันทำ
time cat largefile.file > /dev/null
real 0m24.230s
user 0m0.060s
sys 0m1.473s
ถ้าอย่างนั้นก็เป็นการดึงดูดที่จะบอกว่าประมาณ 22.5 วินาทีใช้เวลาใน I / O แต่wc
ตัวเลขจากด้านบนบอกเป็นนัยว่ามันคือ 8 วินาที ตัวเลขทั้งสองนี้ไม่สอดคล้องกัน
sync && sudo bash -c 'echo 3 > /proc/sys/vm/drop_caches'
ก่อนและได้ผลเหมือนกัน มันไม่ใช่เอฟเฟ็กต์แคชเนื่องจากเวลาโดยรวมเหมือนกัน