मेरा एंड्रॉइड एप्लिकेशन बड़ी और बहुत बड़ी फाइलों का उपयोग करेगा (यानी 10 एमबी और 2 जीबी के आकार के बीच)।स्मार्टफोन पर फ़ाइल पढ़ने का प्रदर्शन: आंतरिक भंडारण बनाम एसडी कार्ड बनाम पीसी हार्ड डिस्क
मैं हमेशा सोच रहा हूं कि स्थिर स्टोरेज के लिए स्मार्टफ़ोन द्वारा हार्डवेयर का उपयोग किया जाता है, और क्या पीसी हार्ड डिस्क के लिए सॉफ़्टवेयर (फ़ाइल पढ़ने/मांगना) विचार समान हैं। मैंने हार्डवेयर के बारे में जानकारी खोजने की कोशिश की और इसके बारे में कुछ प्रकार की तस्वीर (आंतरिक भंडारण, एसडी कार्ड) है, लेकिन मैंने जिन स्रोतों की जांच की है उनमें से कोई भी व्यापक और/या विशिष्ट नहीं है। मेरे (अंतर्संबंध) प्रश्न हैं:
- क्या प्रमुख मतभेद है कि मैं जब (एक Android 2.2 फ़ोन पर जैसे।) एक "आधुनिक" स्मार्टफोन पर बड़ी फ़ाइलों को पढ़ने को ध्यान में रखना चाहिए, एक ही बात कर रही है की तुलना में कर रहे हैं एक पीसी के लिए एक जावा अनुप्रयोग के साथ? (प्रदर्शन की मांग/पढ़ने के डिस्क के संदर्भ में; जाहिर है, सेलफोन रैम एक पीसी से छोटा है, इसलिए इसे बफर आदि के मामले में ध्यान में रखा जाना चाहिए)
- स्थिर भंडारण के बीच (प्रासंगिक) प्रमुख अंतर क्या हैं पीसी हार्ड डिस्क की तुलना में हार्डवेयर में इस्तेमाल हार्डवेयर? (मुझे पता है कि यह एक बहुत ही व्यापक सवाल है, इसलिए मैं यहां एक बहुत ही संक्षिप्त उत्तर और संभवतः कुछ विश्वसनीय बाहरी यूआरएल की सराहना करता हूं)
InputStream
पढ़ने और मांगने (स्किपबाइट्स) के मामले में, क्या कोई अंतर है (उदाहरण के लिए एंड्रॉइड पर) आंतरिक भंडारण और एसडी कार्ड का उपयोग करने के बीच (मैंने जानबूझकर "बाहरी भंडारण" नहीं लिखा था, क्योंकि यह आवश्यक नहीं है कि प्रत्येक डिवाइस पर एसडी कार्ड)? क्या एसडी कार्ड धीमा है?- उदाहरण के लिए, मैं 2 जीबी फ़ाइल से 2 एमबी डेटा पढ़ना चाहता हूं, और यह 2 एमबी डेटा फ़ाइल के कई अलग/दूर हिस्सों में वितरित किया जाता है। सभी ऑफ़सेट ज्ञात हैं, इसलिए मैं ऑफ़सेट के आरोही क्रम का निर्माण करता हूं और फिर उन्हें पढ़ने के लिए
BufferedInputStream.read()
(उदा।DataInputStream
में) का उपयोग करने के लिए उपयोग करता हूं (और जहां भी आवश्यक हो वहांskipBytes()
का उपयोग करके)। इसलिए, अंतर्निहित फ़ाइल सिस्टम में, इसे पूरे 2 जीबी फ़ाइल "जाने" की आवश्यकता हो सकती है। (उदा। एंड्रॉइड आवश्यक होने पर फ़ाइल में खोजने के लिए लिनक्स फ़ंक्शंस का उपयोग करता है।) हालांकि, पीसी हार्ड डिस्क में जितना कुशल है? तलाश दक्षता के मामले में एसडी कार्ड बनाम आंतरिक भंडारण के बारे में क्या? - विशिष्ट डेटा पढ़ने की गति क्या होती है? (स्मार्टफोन आंतरिक स्टोरेज बनाम एसडी कार्ड बनाम पीसी गैर-एसएसडी हार्ड डिस्क)
मुझे पता है कि मेरे ठोस आवेदन के लिए बेंचमार्किंग एक जरूरी है, लेकिन मैं इस मामले में सैद्धांतिक स्पष्टीकरण का भी स्वागत करता हूं।
महत्वपूर्ण: "... एक पीसी हार्ड डिस्क के रूप में के रूप में कुशल मांग कर रहा है" जब मैं चाहते हैं कि, मैं नहीं (केवल) पूर्ण मान मतलब लेकिन यह भी तंत्र इसके बारे में है। यही है, अगर यह एक ही तार्किक सिद्धांतों (= जब भी संभव हो तो बड़े हिस्सों को छोड़कर) पर आधारित होता है, या कुछ कमियां होती हैं (उदाहरण के लिए एसडी कार्ड पर "स्किपिंग-आधारित" मांग संभव नहीं है, और इस प्रकार छोड़ना बहुत अधिक है - - यानी गैर-आनुपातिक रूप से - पीसी हार्ड डिस्क की तुलना में स्मार्टफ़ोन हार्डवेयर पर बेकार)।
'सामान्य डेटा पढ़ने की गति क्या होती है?' यह प्रत्येक सिस्टम/डिवाइस पर भिन्न होता है क्योंकि यह प्रोसेसर और चिप सेट से जुड़ा होता है। ऐसे मामले में एक आधुनिक स्मार्ट फोन एक सेलेरॉन प्रोसेसर कंप्यूटर से तेज हो सकता है, इसी प्रकार – Lucifer
क्लॉस विलाका के जवाब में "मांग हमेशा धीमा कार्य" है, मुझे असहमत होना चाहिए। यह आम तौर पर सच नहीं है; जैसे एक एसडी कार्ड पर मैंने जो सुना, उसके आधार पर, यह हार्ड डिस्क (एसडी कार्ड के हार्डवेयर की प्रकृति के कारण) से ** तेज ** हो सकता है। अर्थात। एक पीसी हार्ड डिस्क से एक यादृच्छिक स्थिति चुनना तेज हो सकता है। –