एक विभाजन में फ़ाइलों को कॉपी करने के लिए, उन्हें दूसरे में कॉपी करने की तुलना में क्यों काफी तेज है?
एक विभाजन में फ़ाइलों को कॉपी करने के लिए, उन्हें दूसरे में कॉपी करने की तुलना में क्यों काफी तेज है?
जवाबों:
मुझे नहीं लगता, एक ही विभाजन पर नकल तेजी से होती है। यदि आप "चलती" का मतलब है, तो डैनियल श्वार्ट्ज के जवाब को देखें, वह पूरी तरह से बताते हैं कि क्या चल रहा है।
हालाँकि, अगर आप वास्तविक कॉपी-ऑपरेशन से मतलब रखते हैं, तो मैं बड़े प्रदर्शन के अंतर की उम्मीद नहीं करूंगा, क्योंकि ऑपरेशन एक ही डिस्क पर होता है। समय की वजह से कुछ मतभेद हो सकते हैं, हेड-प्लेसमेंट-ऑपरेशन हार्डड्राइव (जाहिर है एसएसडी के लिए नहीं) का उपभोग करेगा, लेकिन मुझे इसके प्रभाव की बहुत बड़ी उम्मीद नहीं है। शायद ओएस की अलग-अलग कैशिंग रणनीतियों के कारण कुछ अंतर भी हैं, लेकिन यह भी प्रभाव है, मुझे बहुत बड़ा होने की उम्मीद नहीं है।
क्या फर्क पड़ता है कि एक से दूसरे डिस्क में नकल हो रही है। यदि नियंत्रणकर्ता तेज है, तो यह एक ही डिस्क पर कॉपी करने की तुलना में बहुत तेज़ है, क्योंकि या तो ड्राइव को केवल पढ़ना या लिखना है, दोनों ऑपरेशन एक साथ नहीं करना है (इस नियम का एक अपवाद छोटा डेटा हो सकता है, क्योंकि hdd- और कंट्रोलर कैश)।
कृपया ध्यान दें कि OS फाइलों का लिंक बना सकता है। इस स्थिति में, डेटा की प्रतिलिपि नहीं बनाई जाएगी, लेकिन केवल डेटा का एक नया संदर्भ बनाया जाएगा (फ़ाइल भी डबल स्थान का उपभोग नहीं करेगी)। यह बहुत तेज है। लेकिन यदि आप एक्सप्लोरर या मानक शेल कमांड के साथ अपनी फ़ाइलों को कॉपी करते हैं, तो फ़ाइलों को कॉपी किया जाएगा और लिंक नहीं किया जाएगा।
यह केवल एक समस्या है जब डेटा को उसी हार्ड डिस्क ड्राइव से और उसके लिए कॉपी किया जाता है। डेटा पढ़ा, कैश्ड और वापस लिखा गया है, लेकिन इससे पहले कि वह लिखना शुरू कर सके, रीड / राइट हेड को खाली जगह पर ले जाना चाहिए। अलग-अलग हिस्सों पर स्रोत और गंतव्य होने से यह सुनिश्चित होगा कि संबंधित डिस्क सेक्टर भौतिक रूप से बहुत दूर हैं। पढ़ा / लिखा सिर लगातार आगे-पीछे होता रहेगा। अक्सर आप वास्तव में यह सुन सकते हैं।
जबकि सिर घूम रहा है, डेटा स्थानांतरित नहीं किया जा सकता है। एक ही विभाजन पर स्रोत और गंतव्य होने का मतलब आमतौर पर सिर को इधर-उधर घूमने में कम समय बिताना होता है और इसलिए अधिक कुशल फ़ाइल स्थानांतरण होता है।
आइए दोनों ऑपरेशनों की तुलना करें। सबसे पहले, एक विभाजन से दूसरे में एक फाइल कॉपी करना:
स्रोत खोला जाता है।
गंतव्य खोला / बनाया गया है।
गंतव्य के लिए स्थान आवंटित किया जाता है।
फ़ाइल डेटा के प्रत्येक बाइट को स्रोत से पढ़ा जाता है और गंतव्य पर लिखा जाता है।
गंतव्य फ़ाइल बंद है।
स्रोत फ़ाइल हैंडल करीब पर अनलिंक करने के लिए सेट है।
स्रोत फ़ाइल हैंडल बंद है, फ़ाइल को अनलिंक कर रहा है।
चूंकि स्रोत फ़ाइल डेटा का अंतिम संदर्भ (आमतौर पर) है, इसलिए स्रोत फ़ाइल डेटा को निःशुल्क किया जाना चाहिए।
अब, एक फ़ोल्डर को एक ही विभाजन पर एक फ़ोल्डर से दूसरे में कॉपी करना।
स्रोत खोला जाता है।
गंतव्य निर्देशिका में स्रोत फ़ाइल के लिए एक नया हार्ड लिंक बनाया गया है।
स्रोत फ़ाइल के हैंडल को करीब पर अनलिंक करने के लिए सेट किया गया है।
स्रोत हैंडल बंद है, इसे अनलिंक कर रहा है। स्रोत फ़ाइल अभी भी गंतव्य निर्देशिका से जुड़ी हुई है, इसलिए किसी खाली स्थान को बदलने की आवश्यकता नहीं है।
ध्यान दें कि कम चरण हैं और उनमें से किसी को भी फ़ाइल डेटा या यहां तक कि मुक्त स्थान मानचित्रण को छूने की आवश्यकता नहीं है।