एक स्वैप विभाजन / फाइल सिस्टम को कैसे प्रभावित करेगा?


20

कुछ दोस्तों ने मुझे बताया कि उनके एंड्रॉइड फोन में नियमित एप्स के लिए बहुत कम (<100MB) मेमोरी उपलब्ध है, क्योंकि ओएस और कुछ अन-किलनीय सेवाएं अधिकांश रैम लेती हैं। उदाहरण के लिए, 512MB वाला एक फोन केवल 90MB उपलब्ध मेमोरी दिखाता है, इसलिए एक ही समय में केवल 2-3 ऐप चला सकते हैं।

मैं सोच रहा था कि एक स्वैप विभाजन / फ़ाइल बनाने में मदद मिलेगी, लेकिन मैंने पूरे वेब पर मिश्रित राय देखी और मुझे यकीन नहीं है कि क्या करना है। यहाँ मेरे सवाल हैं:

(1) क्या विशेष रूप से ओएस और उन गैर-हत्या करने योग्य सेवाओं को स्वैप करने के लिए कई बार उपयोग नहीं किए जाने वाले मेमोरी पेज होंगे?

(२) छोटे मेमोरी पेजों की अदला-बदली करने से फ्लैश मेमोरी लाइफ स्पैन को चोट कैसे पहुंचेगी? क्या फ्लैश (या एसडी कार्ड?) पहनने-लेवलिंग स्वचालित रूप से करता है?

(3) क्या स्वैपिंग कई ऐप चलाने पर वास्तव में प्रदर्शन में मदद करेगा? मुझे लगता है कि अगर (1) का जवाब हां है, तो यह होगा।

(४) फ्लैश करने के लिए लिखना बहुत धीमा होगा और इस प्रकार स्वैपिंग होने पर जवाबदेही को चोट पहुंचेगी?

(५) क्या यह सच है कि एंड्रॉइड, लिनक्स कर्नेल से स्वैपिंग मैकेनिज्म को बनाए रखता है, इसलिए जब तक स्वैपिंग पार्टीशन / फ़ाइल है, यह अतिरिक्त कॉन्फ़िगरेशन के बिना स्वैपिंग करेगा?

पढ़ने के लिए धन्यवाद।

जवाबों:


8

मुझे नहीं लगता कि एंड्रॉइड के लिए स्वैपिंग के साथ बहुत अधिक लाभ होगा, क्योंकि एंड्रॉइड एप्लिकेशन लाइफ साइकिल स्वैपिंग का एक बहुत अधिक उन्नत रूप है।

(1) क्या विशेष रूप से ओएस और उन गैर-हत्या करने योग्य सेवाओं को स्वैप करने के लिए कई बार उपयोग नहीं किए जाने वाले मेमोरी पेज होंगे?

आप डेस्कटॉप लिनक्स और एंड्रॉइड में भी ओएस कर्नेल को स्वैप नहीं कर सकते हैं, जब पहले से ही अधिक रैम की आवश्यकता होती है तो एंड्रॉइड पहले ही सेवाओं को मार देता है। यदि आपका डिवाइस विक्रेता इस बात पर कायम है कि आपको हर समय बेकार सेवाएं देनी हैं, तो अपने डिवाइस को रूट करें।

(२) छोटे मेमोरी पेजों की अदला-बदली करने से फ्लैश मेमोरी लाइफ स्पैन को चोट कैसे पहुंचेगी? क्या फ्लैश (या एसडी कार्ड?) पहनने-लेवलिंग स्वचालित रूप से करता है?

यहां तक ​​कि अगर एसडी-कार्ड पहनने-लेवलिंग करता है, तो स्वैपिंग से काफी नुकसान होगा।

(3) क्या स्वैपिंग कई ऐप चलाने पर वास्तव में प्रदर्शन में मदद करेगा? मुझे लगता है कि अगर (1) का जवाब हां है, तो यह होगा।

Android के संदर्भ में नहीं। पारंपरिक OS के विपरीत, जो आपके द्वारा अनुरोध किए जाने पर प्रक्रियाओं में चुगली करने का प्रयास करता रहेगा, Android पुराने, अप्रयुक्त प्रक्रियाओं को मार देगा और उनकी स्मृति को पुनः प्राप्त करेगा; जब आप कार्य स्विच करते हैं तो यह हत्या तेजी से होती है क्योंकि अनुप्रयोग पहले ही अपने राज्य को बचा लेंगे।

(४) फ्लैश करने के लिए लिखना बहुत धीमा होगा और इस प्रकार स्वैपिंग होने पर जवाबदेही को चोट पहुंचेगी?

शायद, शायद नहीं। उसके लिए बेंचमार्क की जरूरत होगी।

(५) क्या यह सच है कि एंड्रॉइड, लिनक्स कर्नेल से स्वैपिंग मैकेनिज्म को बनाए रखता है, इसलिए जब तक स्वैपिंग पार्टीशन / फ़ाइल है, यह अतिरिक्त कॉन्फ़िगरेशन के बिना स्वैपिंग करेगा?

मुझे नहीं पता कि एंड्रॉइड स्वैपिंग मैकेनिज्म रखता है, लेकिन भले ही यह (या यदि आप अपना कर्नेल संकलित करते हैं), तो भी आपको कुछ कॉन्फ़िगरेशन की आवश्यकता होगी। यह आमतौर पर सिर्फ एक fstabफ़ाइल है जो स्वैप फ़ाइल और करने के लिए इंगित करता है swapon -a

वास्तव में मेरे पास कारण है कि स्वैपिंग वास्तव में प्रदर्शन को चोट पहुंचा सकती है: यह एप्लिकेशन लाइफ साइकिल, एंड्रॉइड की मेमोरी प्रबंधन योजना को सही ढंग से काम करने से रोकता है।


जवाब के लिए धन्यवाद। मेरे पास अभी भी सवाल हैं। सैमसंग फ़ास्किनेट पर, 10 अन-किलनीय सेवाएं 110M मेमोरी पर कब्जा कर लेती हैं। 22 अन्य हत्या योग्य सेवाएं चल रही हैं, लेकिन "रनिंग एप्लिकेशन" कोई एप्लिकेशन नहीं चला रहा है। यह मेरे दोस्त का फोन है और मुझे नहीं पता था कि उसने पहले क्या किया था, लेकिन ऐसा लगता है कि यह बहुत संभव है कि एक ही समय में कई सेवाएं / ऐप चल सकें। मुझे नहीं लगता कि ये सभी पृष्ठभूमि सेवाएं / ऐप उन सभी पृष्ठों का उपयोग करते हैं जिनकी आवश्यकता उन्होंने शुरू की थी। इसके अलावा, ऐप स्टेट + रिलोड और रिस्टार्ट ऐप + रिस्टोर स्टेट को भी स्लो करें।
सदाबहार

इस समस्या के बारे में सोचने का एक और तरीका यह है: मान लें कि फ्लैश जीवन काल एक समस्या नहीं है, क्या एंड्रॉइड को स्वैप करना चाहिए? यदि नहीं, तो एंड्रॉइड ऐप और डेस्कटॉप ऐप के बीच मुख्य अंतर क्या है जो स्वैपिंग को एंड्रॉइड पर उपयोगी नहीं बनाता है? मुझे नहीं लगता कि Android Life Cycle डेस्कटॉप / सर्वर एप्लिकेशन के लिए काम करता है।
सदाबहार

@ लीवरग्रीन: एप्लिकेशन के बैकग्राउंड में चले जाने पर एप्लिकेशन स्टेट सेव हो जाता है (उदाहरण के लिए यूजर जब घर पर स्विच करने के लिए प्रेस करता है)। बाद में, जब कुछ अन्य एप्लिकेशन को मेमोरी की आवश्यकता होती है, तो पुराने अनुप्रयोगों या पृष्ठभूमि सेवाओं को मार दिया जाएगा (FK व्यावहारिक रूप से कोई समय नहीं लेता है)। इसका मतलब है कि कार्य हत्या तत्काल है, क्योंकि आवेदन राज्य पहले से ही बहुत समय पहले बचा लिया गया है। जब आप किसी ऐसे एप्लिकेशन को पुनः लोड करते हैं जो पहले से ही मेमोरी में है, तो आपको सबसे तेज पुनः लोड समय मिलेगा; लेकिन अगर आवेदन पहले से ही भरा हुआ है, तो आवेदन को पूर्ण पुनः लोड करने की आवश्यकता है (जो कि स्वैपिंग के साथ समान स्थिति है)
लेनो रे

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

@ लीवरग्रीन: फ्लैश लाइफ को एक समस्या नहीं मानते हुए भी, एंड्रॉइड को स्वैपिंग नहीं करनी चाहिए, क्योंकि एप्लिकेशन लाइफ साइकिल बेहतर काम करता है। एंड्रॉइड लाइफ साइकल को मेमोरी बाधा वाले वातावरण के लिए डिज़ाइन किया गया है, डेस्कटॉप और सर्वर वातावरण में, आपके पास विशाल मात्रा में मेमोरी है, और उपयोगकर्ता बहुत अधिक मल्टीटास्किंग करते हैं, और वे उम्मीद नहीं करते हैं कि बैकग्राउंड प्रोग्राम ओएस द्वारा मारे जाएंगे। Android Life Cycle की कमजोरी यह है कि इसे एप्लिकेशन समर्थन की आवश्यकता होती है। आवेदन को किसी भी समय मारने के लिए तैयार होना चाहिए, और पूर्वनिर्धारित बिंदुओं पर राज्य को बचाना होगा। ऐसी जटिलता डेस्कटॉप ऐप्स के लिए बाहरी है।
रेयान

5

निश्चित रूप से स्वैप करने का एक फायदा है, इसके बावजूद इंटरनेट पर हर कोई आपको बताएगा। प्रयास करें और खुद देखें। कम मेमोरी वाले जी 1 या अन्य फोन पर जोर से स्वैप करने से फोन बेहतर और तेज चलता है।

हां, एंड्रॉइड में जीवन चक्र "कार्य प्रबंधन" बनाया गया है, लेकिन यह बहुत अच्छा नहीं है। जब यह स्मृति से बाहर हो जाता है, तो यह नियमित रूप से प्रक्रियाओं को मारता है , और ऐप्स से " बंडलों " का उपयोग करके अपने राज्य को बचाने की उम्मीद की जाती है ताकि जब आप उन्हें पुनः आरंभ करें, तो वे उसी अवस्था में पुनः आरंभ करें, जिसमें वे अंतिम बार थे।

एक बार जब एंड्रॉइड यह निर्धारित करता है कि उसे एक प्रक्रिया को हटाने की आवश्यकता है, तो यह क्रूरता से करता है, बस इसे बलपूर्वक मार देता है। कर्नेल फिर प्रक्रिया द्वारा आवश्यक सभी संसाधनों को पुनः प्राप्त कर सकता है, बिना उस आवेदन पर भरोसा किए बिना बाहर निकलने के लिए विनम्र अनुरोध के लिए अच्छी तरह से लिखा और उत्तरदायी। अनुप्रयोग संसाधनों को तुरंत पुनः प्राप्त करने के लिए कर्नेल की अनुमति देने से मेमोरी स्थितियों से गंभीर रूप से बचने के लिए बहुत आसान हो जाता है।

यह बहुत अच्छा होगा यदि यह वास्तव में काम करता है, और अंधाधुंध स्वैप से बेहतर होगा। लेकिन ऐप्स वास्तव में अपना राज्य नहीं बचाते हैं; वे बस उस राज्य में वापस जाने के लिए न्यूनतम जानकारी सहेजते हैं । (और कुछ ऐप्स ऐसा करने से बाज नहीं आते हैं।) उस स्थिति में वापस आने में समय लगता है। चूंकि स्वैप वास्तव में ऐप की पूरी स्थिति को बचाता है, जिसे बस फिर से लोड करना पड़ता है, यह ऐप के बीच बहुत तेज़ी से स्विच करता है।

यदि आप ब्राउज़र से किसी अन्य ऐप पर स्विच करते हैं, उदाहरण के लिए, ब्राउज़र लगभग हमेशा मारा जाता है, और फिर इसे वापस स्विच करने पर इसे इंटरनेट से पूरे पृष्ठ को फिर से लोड करना पड़ता है। यह स्वैप से राज्य को पुनः लोड करने की तुलना में अधिक लंबा लगता है, यदि आप एक डेटा प्लान पर हैं, तो आपका पैसा बर्बाद होता है, और वेब पेज के गतिशील होने पर राज्य की समस्याओं का कारण बनता है।

कई एप्स को शुरू करने में ज्यादा समय लगता है, या वास्तव में उसी स्थिति में वापस नहीं आते हैं जब वे दोबारा शुरू होते हैं, इसलिए उन्हें स्वैप करना बेहतर काम करता है।

मैं अनुमान लगा रहा हूं कि जो लोग स्टॉक सिस्टम से खुश हैं वे अपने फोन का अलग तरह से इस्तेमाल करते हैं।

क्या मुझे CyanogenMod के साथ एक स्वैप विभाजन का उपयोग करना चाहिए?


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

सही। न तो सिस्टम इष्टतम है, लेकिन अधिकांश ऐप के लिए स्वैप बेहतर है। यदि आप इसे फिर से खोलते हैं तो ब्राउज़र केवल पृष्ठ को फिर से लोड करता है। कम मेमोरी वाले फोन पर, यह लगभग हमेशा मारा जाएगा।
एंडोलिथ

@LieRyan - "अपने अंतिम पृष्ठ के साथ ब्राउजर में तुरंत सब कुछ लोड होने के साथ वापस लौटें" क्या आप ब्राउज़र को पुनः लोड करने के बाद खोले गए पृष्ठों पर स्क्रॉल स्थिति बहाल कर सकते हैं? Chrome ऐसा नहीं करता है (हालाँकि मुझे यह ब्राउज़र बहुत पसंद है) जो बहुत दुर्भाग्यपूर्ण है जब आपने स्विच करने से पहले कुछ बजाय लॉग वेब पेज के बीच में पढ़ना बंद कर दिया, कहते हैं, कॉल करें ...
kerim

2

मेरे पास एक स्पाइस mi-435 (केवल भारत में बेचा जाता है) है जिसमें केवल 340M की रैम है। नरक हाँ, स्वैप फ़ाइलें बहुत मदद करती हैं। मेरा फोन ऐसी कम रैम पर ICS चलाता है और निश्चित रूप से कई मेमोरी स्टेट्स में प्रवेश करता है और वहां स्वैप फाइल बहुत मदद करती है। सक्रिय उपयोग में नहीं होने पर सभी एप्लिकेशन स्टेट्स को स्वैप में स्थानांतरित कर दिया जाता है। यह मेरे फोन रूम को अधिक एप्लिकेशन और रैम भूखे ऐप्स के लिए पहले से बहुत कम अंतराल के साथ आसानी से चलाने के लिए देता है। हालाँकि, एक समस्या आती है जब मैं उस ऐप को खोलता हूं जो मैं पहले इस्तेमाल करता रहा हूं। अपने राज्य को लोड करने में समय लगता है क्योंकि SD बोर्ड पर उच्च गति रैम की तुलना में बहुत अधिक धीमा है। लेकिन, इतने कम रैम के लिए स्वैप विकल्प बेहतर है। मैं 512M से कम रैम के लिए विभाजन स्वैप करने की सलाह दूंगा लेकिन 512M से अधिक के लिए नहीं।

आशा है कि यह मददगार है।


1

उच्चतर RAM वाले सिस्टम पर भी स्वैप फाइल मदद करती है। मेरे क्वाड कोर 1 जीबी रैम 7 इंच के टैबलेट को यूएचएस -1 माइक्रो एसडी कार्ड पर 2 जीबी स्वैप में चकिंग से एक प्रमुख मल्टी-टास्किंग को बढ़ावा मिलता है। और निश्चित रूप से, स्मृति की कीमत तेजी से नीचे जाती है, और यहां तक ​​कि निरंतर लिखने पर, नंद फ्लैश पिछले वर्षों तक माना जाता है।

Im मूल रूप से राय, क्योंकि प्रदर्शन अंतर इतना कट्टरपंथी है, कि शायद कोई भी वास्तव में बड़ी मात्रा में रैम से कम है। वास्तव में इसे संभवतः एंड्रॉइड में एक मानक विकल्प के रूप में (बड़े ऐप कैश के साथ, और उचित आकार के इंटरनेट कैश के रूप में) आना चाहिए।

मेरा मतलब है कि आपके पास 64-128 जीबी माइक्रो एसडी (यूएचएस -1), या यहां तक ​​कि यूएचएस -2 भी है जो इस साल सामने आया है, साथ ही 16-64 जीबी आंतरिक नंद, अक्सर "तेज" नंद, जो एक प्रकार का आदिम एसएसडी है या यहां तक ​​कि एसएसडी, जैसा कि खिड़कियों के स्लेट पर उपयोग किया जाता है - आपका बिल्कुल उच्च गति वाले स्थान को बिल्कुल नहीं भरता है। गति वास्तव में केवल वीडियो के साथ खेलने के लिए आती है, या ऐप्स को मेमोरी में लोड करती है - जो वास्तव में यहां उपयोग है।

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

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

और बाहरी मेमोरी की लागत, मूंगफली वास्तव में है, यहां तक ​​कि उच्च क्षमता uhs-1 के लिए भी। कम से कम 64gb uhs-1 पूरी तरह से सस्ती है (50 रुपये जहां मैं हूं, लेकिन यह कम USD होगा), डिवाइस की तुलना में बहुत सस्ता है, और 32 जीबी और इसके तहत मूल रूप से टेनेर्स की एक जोड़ी है।

वास्तव में डेस्कटॉप से ​​बहुत कुछ सीखने को मिलता है, विशेष रूप से अब चश्मा उच्चतर हो रहे हैं - सबसे धीमा प्रदर्शन लिंक स्टोरेज से रैम पर लोड हो रहा है। जितना अधिक आप इसे कम करने के लिए, बेहतर कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.