ฉันกำลังอ่านบางสิ่งที่คล้ายกับเมื่อวานนี้เกี่ยวกับ OSX และเป็นการบีบอัดของระบบไฟล์ - โดยทั่วไปคำตอบจะหมุนรอบสิ่งที่คุณต้องการบีบอัด - ในตัวอย่างนี้เขาพูดถึงข้อมูล "FAT"; โครงสร้างไฟล์, คุณสมบัติ, ข้อมูลเมตา ฯลฯ ที่เก็บไว้ด้วยกันสามารถบีบอัดเพื่อประหยัดพื้นที่และสามารถอ่านลงใน cpu ได้เร็วกว่าการค้นหาหัวทั่วสถานที่เพื่อค้นหาข้อมูลสำหรับแต่ละไฟล์ ...
แต่การบีบอัดไม่ได้เกี่ยวกับการประหยัดเนื้อที่ดิสก์เท่านั้น นอกจากนี้ยังเป็นตัวอย่างคลาสสิกของการซื้อขายรอบ CPU สำหรับเวลาแฝงของ I / O และแบนด์วิดท์ที่ลดลง ในช่วงสองสามทศวรรษที่ผ่านมาประสิทธิภาพของ CPU ได้ดีขึ้น (และทรัพยากรการประมวลผลที่มากมายกว่านั้น - มากขึ้นในภายหลัง) ในอัตราที่เร็วกว่าประสิทธิภาพของดิสก์ที่เพิ่มขึ้น ฮาร์ดดิสก์ที่ทันสมัยค้นหาเวลาและความล่าช้าในการหมุนยังคงวัดเป็นมิลลิวินาที ในหนึ่งมิลลิวินาที CPU 2 GHz ผ่านสองล้านรอบ และแน่นอนว่ายังมีเวลาในการถ่ายโอนข้อมูลจริงที่ต้องพิจารณา
ได้รับการแคชหลายระดับทั่วทั้งระบบปฏิบัติการและงานฮาร์ดแวร์อย่างมากเพื่อซ่อนความล่าช้าเหล่านี้ แต่บิตเหล่านั้นจะต้องหลุดออกจากดิสก์ในบางจุดเพื่อเติมแคชเหล่านั้น การบีบอัดหมายความว่าต้องมีการถ่ายโอนบิตน้อยลง เนื่องจากทรัพยากร CPU เกือบเต็มไปด้วยความตลกขบขันบน Mac แบบ multi-core ที่ทันสมัยภายใต้การใช้งานปกติเวลาทั้งหมดที่ต้องใช้ในการถ่ายโอนข้อมูลที่ถูกบีบอัดจากดิสก์และใช้ CPU เพื่อขยายเนื้อหาลงในหน่วยความจำมักจะน้อยกว่าเวลา มันจะใช้ในการถ่ายโอนข้อมูลในรูปแบบที่ไม่มีการบีบอัด
ที่อธิบายถึงประโยชน์ที่เป็นไปได้ของประสิทธิภาพในการถ่ายโอนข้อมูลน้อยลง แต่การใช้คุณสมบัติเพิ่มเติมเพื่อจัดเก็บเนื้อหาไฟล์สามารถทำให้สิ่งต่าง ๆ เร็วขึ้นได้เช่นกัน ทุกอย่างเกี่ยวข้องกับพื้นที่ข้อมูล
หากมีสิ่งหนึ่งที่ทำให้ฮาร์ดดิสก์ช้าลงมากกว่าการถ่ายโอนข้อมูลจำนวนมากก็จะเป็นการย้ายหัวจากส่วนหนึ่งของดิสก์ไปยังอีกส่วนหนึ่ง ทุกการเคลื่อนไหวหมายถึงเวลาที่ศีรษะจะเริ่มเคลื่อนไหวจากนั้นหยุดจากนั้นตรวจสอบให้แน่ใจว่าอยู่ในตำแหน่งที่ถูกต้องเหนือตำแหน่งที่ต้องการจากนั้นรอให้แผ่นดิสก์หมุนเพื่อวางบิตที่ต้องการไว้ด้านล่าง สิ่งเหล่านี้ล้วนเป็นของจริงทางกายภาพชิ้นส่วนที่เคลื่อนไหวได้และมันน่าทึ่งมากที่พวกเขาเต้นได้อย่างรวดเร็วและมีประสิทธิภาพเหมือนที่พวกเขาทำ แต่ฟิสิกส์มีข้อ จำกัด การเคลื่อนไหวเหล่านี้เป็นตัวฆ่าประสิทธิภาพที่แท้จริงสำหรับการจัดเก็บในลักษณะการหมุนเช่นฮาร์ดดิสก์
รูปแบบปริมาณ HFS + เก็บข้อมูลทั้งหมดเกี่ยวกับไฟล์ - ข้อมูลเมตาในสองตำแหน่งหลักบนดิสก์: ไฟล์แคตตาล็อกซึ่งเก็บวันที่ของไฟล์, สิทธิ์, ความเป็นเจ้าของและโฮสต์ของสิ่งอื่น ๆ และไฟล์คุณสมบัติที่เก็บ "ชื่อส้อม ."
แอ็ตทริบิวต์ส่วนขยายใน HFS + ถูกนำไปใช้เป็นชื่อ forks ในไฟล์คุณสมบัติ แต่แตกต่างจากส้อมทรัพยากรซึ่งอาจมีขนาดใหญ่มาก (สูงสุดขนาดไฟล์สูงสุดที่รองรับโดยระบบไฟล์) แอตทริบิวต์เพิ่มเติมใน HFS + จะถูกจัดเก็บ "inline" ใน Attributes File ในทางปฏิบัติหมายถึงขีด จำกัด ประมาณ 128 ไบต์ต่อแอตทริบิวต์ แต่ก็หมายความว่าหัวดิสก์ไม่จำเป็นต้องเดินทางไปยังส่วนอื่นของดิสก์เพื่อรับข้อมูลจริง
อย่างที่คุณสามารถจินตนาการได้ว่าบล็อกดิสก์ที่ประกอบขึ้นเป็นไฟล์ Catalog และ Attributes นั้นมีการเข้าถึงบ่อยครั้งและมีแนวโน้มที่จะอยู่ในแคชมากกว่าที่อื่น แผนการทั้งหมดนี้เพื่อให้การจัดเก็บไฟล์สมบูรณ์รวมทั้งข้อมูลเมตาของข้อมูลในแคตตาล็อก B-tree-Structured และไฟล์แอตทริบิวต์จะชนะประสิทธิภาพโดยรวม แม้แต่ส่วนบรรจุข้อมูลแปดไบต์ที่ลูกโป่งถึง 25 ไบต์ไม่เป็นปัญหาตราบใดที่ยังคงมีขนาดน้อยกว่าขนาดบล็อกการจัดสรรสำหรับการจัดเก็บข้อมูลปกติและตราบใดที่มันพอดีกับโหนด B-tree ในไฟล์คุณสมบัติที่ ระบบปฏิบัติการต้องอ่านอย่างครบถ้วนแล้ว
มีการสนับสนุนที่สำคัญอื่น ๆ ถึงรอยเท้าบนดิสก์ที่ลดลงของ Snow Leopard (เช่นการลบการแปลที่ไม่จำเป็นและไฟล์ "designable.nib") แต่การบีบอัด HFS + นั้นน่าสนใจมากที่สุดทางเทคนิค