मैं OSX के बारे में कल इसी तरह से पढ़ रहा था और यह फाइलसिस्टम का संपीड़न है - मूल रूप से इसका उत्तर यह है कि आप जो संक्षिप्त करना चाहते हैं, उसके चारों ओर घूमता है - इस उदाहरण में वह "एफएटी" डेटा के बारे में बात कर रहा है; फ़ाइल संरचनाएँ, गुण, मेटाडेटा आदि कि जब एक साथ संग्रहीत किया जा सकता है तो अंतरिक्ष को बचाने के लिए संपीड़ित किया जा सकता है और प्रत्येक फ़ाइल के डेटा को खोजने के लिए सभी जगह सिर मांगने की तुलना में तेजी से सीपीयू में पढ़ा जा सकता है ...
लेकिन संपीड़न सिर्फ डिस्क स्थान को बचाने के बारे में नहीं है। यह कमी आई / ओ विलंबता और बैंडविड्थ के लिए सीपीयू चक्रों के व्यापार का एक उत्कृष्ट उदाहरण है। पिछले कुछ दशकों में, सीपीयू प्रदर्शन बेहतर हुआ है (और बाद में उस पर और अधिक भरपूर मात्रा में संसाधनों की गणना की गई है) डिस्क प्रदर्शन की तुलना में बहुत तेज गति से वृद्धि हुई है। आधुनिक हार्ड डिस्क बार और घूर्णी विलंब को अभी भी मिलीसेकंड में मापा जाता है। एक मिलीसेकंड में, एक 2 गीगाहर्ट्ज सीपीयू दो मिलियन चक्रों से गुजरता है। और फिर, ज़ाहिर है, विचार करने के लिए वास्तविक डेटा स्थानांतरण समय अभी भी है।
दी गई, इन देरी को छुपाने के लिए पूरे OS और हार्डवेयर में कई स्तरों पर कैशिंग काम करती है। लेकिन उन बिट्स को उन बिंदुओं को भरने के लिए किसी बिंदु पर डिस्क से बाहर आना पड़ता है। संपीड़न का मतलब है कि कम बिट्स को स्थानांतरित करना होगा। सामान्य उपयोग के तहत एक आधुनिक मल्टी-कोर मैक पर सीपीयू संसाधनों की लगभग हास्यपूर्ण चमक को देखते हुए, डिस्क से एक संकुचित पेलोड को स्थानांतरित करने और मेमोरी में इसकी सामग्री को कम करने के लिए सीपीयू का उपयोग करने के लिए आवश्यक कुल समय अभी भी समय से बहुत कम होगा। यह डेटा को असम्पीडित रूप में स्थानांतरित करना चाहता है।
यह कम डेटा स्थानांतरित करने के संभावित प्रदर्शन लाभों की व्याख्या करता है, लेकिन फ़ाइल सामग्री को संग्रहीत करने के लिए विस्तारित विशेषताओं का उपयोग वास्तव में चीजों को तेज कर सकता है, साथ ही साथ। यह सब डेटा इलाके के साथ करना है।
अगर एक चीज़ है जो बड़ी मात्रा में डेटा स्थानांतरित करने से अधिक हार्ड डिस्क को धीमा कर देती है, तो यह डिस्क के एक हिस्से से दूसरे तक अपने सिर को स्थानांतरित कर रहा है। हर चाल का मतलब है कि सिर को हिलना शुरू करना है, फिर रुक जाएं, फिर सुनिश्चित करें कि यह वांछित स्थान पर सही ढंग से तैनात है, फिर कताई डिस्क के नीचे वांछित बिट्स लगाने के लिए प्रतीक्षा करें। ये सभी वास्तविक, भौतिक, चलते हुए भाग हैं, और यह आश्चर्यजनक है कि वे अपने नृत्य को जितनी जल्दी और कुशलता से करते हैं, उतना ही करते हैं, लेकिन भौतिकी की अपनी सीमाएं हैं। ये गति हार्ड डिस्क जैसे घूर्णी भंडारण के लिए वास्तविक प्रदर्शन हत्यारे हैं।
HFS + वॉल्यूम प्रारूप फ़ाइलों के बारे में अपनी सभी जानकारी संग्रहीत करता है - मेटाडेटा - डिस्क पर दो प्राथमिक स्थानों में: कैटलॉग फ़ाइल, जो फ़ाइल दिनांक, अनुमतियाँ, स्वामित्व और अन्य चीज़ों के एक होस्ट को संग्रहीत करता है, और गुण फ़ाइल, जो स्टोर करता है "नामित toks । "
एचएफएस + में विस्तारित विशेषताओं को एट्रीब्यूट्स फ़ाइल में नामित कांटे के रूप में लागू किया गया है। लेकिन संसाधन कांटे के विपरीत, जो बहुत बड़ा हो सकता है (फ़ाइल सिस्टम द्वारा समर्थित अधिकतम फ़ाइल आकार तक), एचएफएस + में विस्तारित विशेषताओं को विशेषता फ़ाइल में "इनलाइन" संग्रहीत किया जाता है। व्यवहार में, इसका अर्थ है प्रति विशेषता लगभग 128 बाइट्स की सीमा। लेकिन इसका यह भी अर्थ है कि डिस्क हेड को वास्तविक डेटा प्राप्त करने के लिए डिस्क के किसी अन्य भाग की यात्रा करने की आवश्यकता नहीं है।
जैसा कि आप कल्पना कर सकते हैं, कैटलॉग और एट्रीब्यूट्स फ़ाइलों को बनाने वाले डिस्क ब्लॉक अक्सर एक्सेस किए जाते हैं, और इसलिए कहीं-कहीं कैश में सबसे अधिक होने की संभावना है। यह सभी बी-ट्री-संरचित कैटलॉग के भीतर अपने डेटा में मेटाडेटा दोनों सहित एक फ़ाइल का पूरा भंडारण करने की साजिश करता है और एक समग्र प्रदर्शन जीत के लिए फाइलों को शामिल करता है। यहां तक कि एक आठ-बाइट पेलोड जो 25 बाइट के लिए गुब्बारे के लिए एक चिंता का विषय नहीं है, जब तक कि यह अभी भी सामान्य डेटा भंडारण के लिए आवंटन ब्लॉक आकार से कम नहीं है, और जब तक यह सभी विशेषताओं में बी-ट्री नोड के भीतर फिट बैठता है फ़ाइल OS को वैसे भी पूरी तरह से पढ़ना होगा।
स्नो लेपर्ड की कम हुई डिस्क पदचिह्न (उदाहरण के लिए, अनावश्यक स्थानीयकरणों को हटाने और "designable.nib" फ़ाइलों) में अन्य महत्वपूर्ण योगदान हैं, लेकिन HFS + संपीड़न अब तक का सबसे तकनीकी रूप से दिलचस्प है।