การทดลองเพื่อปรับปรุงประสิทธิภาพของยูทิลิตี้ cat

Ariadne Conill ผู้สร้างเครื่องเล่นเพลง Audacious ผู้ริเริ่มโปรโตคอล IRCv3 และผู้นำทีมรักษาความปลอดภัย Alpine Linux ได้ทำการวิจัยเกี่ยวกับวิธีการเพิ่มประสิทธิภาพยูทิลิตี้ cat ซึ่งจะส่งออกไฟล์อย่างน้อยหนึ่งไฟล์ไปยังสตรีมเอาท์พุตมาตรฐาน เพื่อปรับปรุงประสิทธิภาพของ cat บน Linux มีการเสนอการปรับให้เหมาะสมสองประการ โดยอิงตามการใช้การเรียกระบบ sendfile และ splice เพื่อคัดลอกข้อมูลโดยตรงระหว่างตัวอธิบายไฟล์ที่ระดับเคอร์เนลโดยไม่ต้องสลับบริบทไปยังพื้นที่ผู้ใช้

การใช้งานพื้นฐานโดยใช้การเรียกอ่านและเขียนแบบดั้งเดิมที่นำไปสู่การสลับบริบท แสดงประสิทธิภาพที่ 4 GB/s เมื่อคัดลอกไฟล์ 3.6GB จาก tmpfs ตัวเลือกแบบ sendfile เพิ่มประสิทธิภาพเป็น 6.4 GB/s และตัวเลือกแบบใช้ splice เพิ่มประสิทธิภาพเป็น 11.6 GB/s เช่น ปรากฏว่าเร็วกว่าเวอร์ชั่นเดิมถึง 3 เท่า

ที่มา: opennet.ru

เพิ่มความคิดเห็น