ฉันมีไดเรกทอรีที่มีประมาณ 100,000 ไฟล์อยู่ในนั้น ls -f ค้างไว้นานกว่าหนึ่งนาที ฉันวิ่งตาม strace และเริ่มเห็น getdents ในทันทีดังนั้น ls จึงอ่านไดเรกทอรีอย่างชัดเจน ฉันเห็นการโทรไปยัง brk เป็นจำนวนมากดังนั้น ls จึงบัฟเฟอร์สิ่งต่าง ๆ ในหน่วยความจำอย่างชัดเจน ฉันเขียนโปรแกรมง่าย ๆ ที่เรียก readdir และชื่อไฟล์ output และมันจะตอบสนองทันที แต่ ls -f ไม่ได้ให้ผลลัพธ์ สิ่งที่ช่วยให้? ฉันคิดว่าจุดทั้งหมดของ -f คือมันทำให้ ls ไม่ทำอะไรมากไปกว่า readdir มีวิธีพกพาและเชื่อถือได้ในการแสดงรายการเนื้อหาของไดเรกทอรีหรือไม่? (หมายเหตุนี่คือ ls จาก coreutils ของ gnu บน Linux)
-EDIT-
มีนามแฝงอยู่ในสถานที่ แต่ "/ bin / ls -1f> / dev / null" ใช้เวลา 8 ถึง 15 วินาที "/ bin / ls -1fx> / dev / null" ใช้เวลา 4 ถึง 11 วินาที แต่โปรแกรมง่าย ๆ นั่นเป็นเพียง readdir ใช้เวลา 0.011 วินาที ฉันต้องทำอะไรเพื่อทำให้ gnu ไม่ดูด