बड़े पैमाने पर ब्लॉक का उपयोग करने में आमतौर पर थोड़ा सा लाभ होता है।
मान लीजिए कि आपका ऑपरेटिंग सिस्टम सुपर-बेवकूफ है और प्रत्येक पढ़ने या लिखने के ऑपरेशन में हार्ड डिस्क की तलाश होती है (प्रैक्टिस में आप अक्सर पाएंगे कि लिखते हैं कतारबद्ध हो जाते हैं और पढ़ते हैं, आगे बढ़ते हैं, बड़े बफर का उपयोग करने के लाभ को कम करते हैं आपके आवेदन कोड में)।
फिर प्रत्येक ब्लॉक आपको दो कहने के लिए 2x10ms खर्च करता है (एक पढ़ने के लिए और एक लिखने के लिए) और वास्तविक पढ़ने और लेखन के समय के बाद आपके ब्लॉक आकार में थोड़ा सा बिंदु बढ़ रहा है। एक वास्तव में तेज़ एचडी 150 एमबी/एस पर पढ़ और लिख सकता है, इस मामले में 10 एमएमएस 1.5 एमबी पढ़ने/लिखने के अनुरूप होगा, और आप 15 एमबी से अधिक ब्लॉकों के लिए थोड़ा सा प्राप्त करेंगे।
प्रैक्टिस में, (1) आपका खोज समय शायद कम होगा, (2) आपकी पढ़ाई और लिखने वाली बैंडविड्थ शायद अधिक होगी, और (3) आपका ओएस और ड्राइव हार्डवेयर शायद आपके लिए चीजें कैशिंग और क्यूइंग करेगा; आपको शायद लगभग 100 केबी से ऊपर ब्लॉक करने से बहुत कम या कोई लाभ दिखाई देगा।
(आप शायद बेंचमार्क blocksizes की एक किस्म है और देखना चाहिए कि क्या आप अपने खुद के सिस्टम पर मिलता है।)
स्रोत
2011-03-26 21:28:08
शायद आपके निष्पादन योग्य विंडोज-कॉपियर की तुलना में एक उच्च प्राथमिकता है। – BenjaminB
यदि आपका ओएस 'statfs' प्रदान करता है तो आप उस अवरोध को देख सकते हैं जो यह सुझाता है ('f_bsize'), हालांकि मुझे नहीं पता कि आप कितना दूर विश्वास कर सकते हैं कि यह वास्तव में" इष्टतम "है। जब तक आप वास्तव में चिंतित नहीं होते हैं कि विभिन्न प्लेटफॉर्म और फाइल सिस्टम पर क्या होता है, तो विभिन्न मशीनों के साथ बहुत छोटे से बहुत बड़े आकार के साथ अपनी मशीन पर कुछ परीक्षण चलाएं। उस बिंदु से परे अधिक स्मृति का उपयोग करने का कोई मतलब नहीं है जहां यह तेजी से हो रहा है। –
विंडोज़ पर 'कॉपीफाइल' जैसे मूल संचालन का उपयोग करने पर भी विचार करें। – MSalters