मेरे पास एक विधि है जो एक फ़ाइल से संदेशडिगस्ट (हैश) बनाता है, और मुझे इसे कई फाइलों (> = 100,000) में करने की आवश्यकता है। प्रदर्शन को अधिकतम करने के लिए फ़ाइलों से पढ़ने के लिए बफर को कितना बड़ा उपयोग करना चाहिए?FileInputStream का उपयोग करते समय आप आदर्श बफर आकार को कैसे निर्धारित करते हैं?
MessageDigest md = MessageDigest.getInstance("SHA");
FileInputStream ios = new FileInputStream("myfile.bmp");
byte[] buffer = new byte[4 * 1024]; // what should this value be?
int read = 0;
while((read = ios.read(buffer)) > 0)
md.update(buffer, 0, read);
ios.close();
md.digest();
प्रवाह क्षमता को अधिकतम करने के बफर के आदर्श आकार क्या है:
अधिकांश हर कोई बुनियादी कोड (जो मैं यहाँ सिर्फ मामले में दोहराने की आवश्यकता होगी) से परिचित है? मुझे पता है कि यह सिस्टम निर्भर है, और मुझे पूरा यकीन है कि इसका ओएस, फाइलसिस्टम, और एचडीडी निर्भर है, और मिश्रण में अन्य हार्डवेयर/सॉफ्टवेयर हो सकता है।
(मैं कहना चाहिए कि मैं कुछ जावा के लिए नया हूँ, इसलिए यह सिर्फ कुछ जावा API कॉल के बारे में मैं नहीं जानता हो सकता है।)
संपादित करें: मैं समय से आगे पता नहीं है इस तरह के सिस्टम का उपयोग किया जाएगा, इसलिए मैं पूरी तरह से नहीं मान सकता। (मुझे लगता है कि कारण के लिए जावा का उपयोग कर रहा हूँ।)
संपादित करें: कोड ऊपर try..catch तरह बातें याद आ रही है बनाने के लिए पद छोटे
मैंने इस प्रयास को ..catch के बारे में संपादित किया। मेरे असली कोड में मेरे पास एक है, लेकिन मैंने पोस्ट को कम करने के लिए इसे छोड़ दिया। – ARKBAN