2010-11-05 15 views
5

मैं एक ऐसा एप्लिकेशन लिख रहा हूं जो लाखों की गणना करेगा और परिणाम डिस्क में कई फाइलों में संग्रहीत करेगा। संभावित रूप से मेरे पास विश्लेषण होने तक हजारों फाइलें, विभिन्न आकारों और स्टोर हो सकती हैं। इसके बाद, मैं उनमें से केवल कुछ ही रखने जा रहा हूं, दूसरों को हटा दूंगा और फिर से प्रक्रिया शुरू करूंगा। मेरे आवेदन के लिए यह बहुत अच्छा काम करता है, लेकिन अब मुझे चिंता करना शुरू हो रहा है कि मैं अपनी डिस्क को पागल की तरह टुकड़ा कर दूंगा (मेरी डिस्क एनटीएफएस का उपयोग करती है)। समय-समय पर डिस्क ड्राइव को डिफ्रैगमेंट करना मेरे नियंत्रण में नहीं है, क्योंकि मैं मशीन के व्यवस्थापक नहीं हूं।हार्ड डिस्क विखंडन से कैसे बचें?

क्या डिस्क विखंडन से बचने का कोई तरीका है?

उत्तर

1

कई फाइलें इकट्ठा करने के लिए अपना स्वयं का फ़ाइल प्रारूप बनाने का प्रयास करें?

4

छोटी फ़ाइलों का टुकड़ा आम तौर पर कोई मुद्दा नहीं है। यदि फ़ाइलों को वास्तव में कोई फर्क नहीं पड़ता है तो फ़ाइलों को पढ़ा जाता है - यदि केवल एक बड़ी फ़ाइल कई हिस्सों में होती है तो डिस्क केवल वास्तविक समस्या होती है और डिस्क को यह सब प्राप्त करने के लिए बहुत सारी इच्छाएं करनी होंगी।

स्पष्ट समाधान बहुत छोटी लॉग फ़ाइलों को लिखना नहीं है, या तो उन्हें एक बड़ी फ़ाइल में संयोजित करें - या डेटाबेस का उपयोग करें, यही वह है जो वे हैं।

3

डेटाबेस का उपयोग करें, यह इस तरह की चीज के लिए बनाया गया है।

1

मैं व्यक्तिगत रूप से कहेंगे एक प्रोग्रामर के रूप में आप इस तरह इस बहुत ज्यादा के रूप में ऑपरेटिंग सिस्टम स्तर के मुद्दों के बारे में चिंता नहीं करनी चाहिए कि जब तक आप एक एम्बेडेड मंच पर काम कर रहे हैं। (उदाहरण के लिए, आप कैसे जानते हैं कि लक्ष्य ओएस के अगले संस्करण ने आपके लिए समस्या हल नहीं की होगी?)

हालांकि, यदि डेटाबेस का उपयोग करना एक विकल्प नहीं है (यह एक सुंदर स्पष्ट समाधान की तरह लगता है उस ने कहा) आप डेटा को कम, बड़ी फाइलों में लिख सकते हैं।

0

आपके प्रोग्राम द्वारा उपयोग के लिए एक अलग विभाजन बनाने के बारे में क्या? तब आप विभाजन पर जो चाहें कर सकते हैं (डी :) और इसे अपने ऐप के मुख्य रनों के बीच उड़ाना (कचरा समय defragmenting के बजाय)। इससे भी बेहतर, बस अपने आवेदन को बाहरी ड्राइव पर लिखें, इसे अपने मुख्य सिस्टम से पूरी तरह से दूर रखें।

+0

कृपया http://meta.stackexchange.com/questions/28416/what-is-the-policy-on-ignature-and-links-in-answers-for-so-questions पढ़ें। इसके अलावा, जैसा कि मेटा पर कहीं और बताया गया है, "उम, आपको पता है कि उत्तरों में लिंक nofollowed हैं, है ना?" –

1

यदि आपकी फ़ाइलें 4096 बाइट से कम हैं, तो एनटीएफएस प्रारूपित विभाजन पर कोई विखंडन नहीं होगा। एनटीएफएस के लिए क्लस्टर आकार यदि 4 केबी है, तो एक 1 बाइट फ़ाइल भी डिस्क पर 4 केबी का उपयोग करेगी। बस किसी भी फाइल के फाइल गुणों को देखो। डिस्क पर आकार और आकार के लिए गुण हैं।

संबंधित मुद्दे