मुझे स्थानीय लिनक्स फाइल सिस्टम पर रहने वाली 10,000 फ़ाइलों को संसाधित करने के लिए कुछ कोड (किसी भी भाषा में) लिखने की आवश्यकता है। प्रत्येक फ़ाइल आकार में ~ 500 केबी है, और प्रत्येक के 4 केबी के निश्चित आकार के रिकॉर्ड होते हैं।कई छोटी फ़ाइलों को पढ़ने पर समय तलाशना
प्रति रिकॉर्ड प्रसंस्करण समय नगण्य है, और रिकॉर्ड को विभिन्न फ़ाइलों के भीतर और दोनों में, किसी भी क्रम में संसाधित किया जा सकता है।
कुछ भयानक कार्यान्वयन कुछ मनमानी क्रम में फ़ाइलों को एक-एक करके पढ़ा जाएगा। हालांकि, चूंकि मेरे डिस्क पढ़ने के लिए बहुत तेज़ हैं लेकिन खोजना धीमा है, यह लगभग निश्चित रूप से कोड उत्पन्न करेगा जो डिस्क की मांग से बंधे हैं।
क्या पढ़ने के लिए कोड करने का कोई तरीका है ताकि यह समय तलाशने के बजाय डिस्क थ्रूपुट से बाध्य हो?
पूछताछ की एक पंक्ति डिस्क पर मौजूद फाइलों का अनुमान लगाने का अनुमान लगाने और प्राप्त करने के लिए है, और इसे पढ़ने के अनुक्रम के लिए इसका उपयोग करें। हालांकि, मुझे यकीन नहीं है कि ऐसा करने के लिए एपीआई का उपयोग कैसे किया जा सकता है।
मैं निश्चित रूप से किसी भी अन्य विचारों के लिए खुला हूं।
फाइल सिस्टम ext4 है, लेकिन यह परक्राम्य है।
एकाधिक फ़ाइलों का उपयोग क्यों करें? आप निश्चित रिकॉर्ड और समूह आकार के साथ केवल एक बड़ी फ़ाइल का उपयोग कर सकते हैं? – ydroneaud
इन फ़ाइलों को कैसे संसाधित किया जाएगा? – Har
@ydroneaud: मुझे कोई नियंत्रण नहीं है कि फाइलें कैसे बनाई जाती हैं, और उन्हें प्री-प्रोसेसिंग चरण के रूप में विलय करने से वास्तव में वही प्रश्न उठता है (यानी * एक सभ्य प्रदर्शन प्राप्त करने के लिए मर्ज के दौरान उन्हें किस क्रम में पढ़ा जाना चाहिए?) – NPE