फोनला त्यांच्या सुरळीत मल्टीटास्किंगसाठी आवश्यक असलेली RAM ची आदर्श रक्कम हा वादाचा विषय आहे. ऍपलला त्याच्या iPhones मध्ये लहान आकार मिळतो, जो Android सोल्यूशन्सपेक्षा अधिक वापरण्यायोग्य असतो. तुम्हाला आयफोनवर कोणत्याही प्रकारचे RAM मेमरी व्यवस्थापन देखील सापडणार नाही, तर Android चे यासाठी स्वतःचे समर्पित कार्य आहे.
उदाहरणार्थ, सॅमसंग गॅलेक्सी फोनमध्ये तुम्ही जाता नॅस्टवेन -> डिव्हाइस काळजी, तुम्हाला येथे किती जागा मोकळी आहे आणि किती व्यापलेली आहे याची माहिती देणारा RAM इंडिकेटर मिळेल. मेनूवर क्लिक केल्यानंतर, प्रत्येक ॲप्लिकेशन किती मेमरी घेत आहे ते तुम्ही पाहू शकता आणि तुम्हाला येथे मेमरी साफ करण्याचा पर्याय देखील आहे. रॅम प्लस फंक्शन देखील येथे स्थित आहे. त्याचा अर्थ असा आहे की तो अंतर्गत स्टोरेजमधून जीबीची काही विशिष्ट संख्या काढून टाकेल, जी तो आभासी मेमरीसाठी वापरेल. आपण iOS वर असे काहीतरी कल्पना करू शकता?
स्मार्टफोन रॅमवर अवलंबून असतात. हे त्यांना ऑपरेटिंग सिस्टम संचयित करण्यासाठी, ऍप्लिकेशन्स लॉन्च करण्यासाठी आणि कॅशे आणि बफर मेमरीमध्ये त्यांचा काही डेटा संग्रहित करण्यासाठी कार्य करते. अशाप्रकारे, RAM अशा प्रकारे व्यवस्थित आणि व्यवस्थापित करणे आवश्यक आहे की अनुप्रयोग सुरळीतपणे चालू शकतात, जरी तुम्ही ते पार्श्वभूमीवर सोडले आणि काही वेळाने ते पुन्हा उघडले तरीही.
स्विफ्ट वि. जावा
परंतु नवीन ऍप्लिकेशन सुरू करताना, ते लोड करण्यासाठी आणि चालविण्यासाठी तुमच्याकडे मेमरीमध्ये मोकळी जागा असणे आवश्यक आहे. तसे न झाल्यास, जागा रिकामी करणे आवश्यक आहे. त्यामुळे प्रणाली काही चालू असलेल्या प्रक्रियांना सक्तीने समाप्त करेल, जसे की आधीच सुरू झालेले अनुप्रयोग. तथापि, दोन्ही प्रणाली, म्हणजे Android आणि iOS, RAM सह वेगळ्या पद्धतीने कार्य करतात.
iOS ऑपरेटिंग सिस्टम स्विफ्टमध्ये लिहिलेली आहे, आणि iPhones ला प्रत्यक्षात बंद केलेल्या ॲप्समधून वापरलेली मेमरी पुन्हा सिस्टममध्ये रीसायकल करण्याची आवश्यकता नाही. हे iOS तयार करण्याच्या पद्धतीमुळे आहे, कारण Appleपलचे त्यावर पूर्ण नियंत्रण आहे कारण ते फक्त त्याच्या iPhones वर चालते. याउलट, Android जावामध्ये लिहिलेले आहे आणि अनेक उपकरणांवर वापरले जाते, म्हणून ते अधिक सार्वत्रिक असणे आवश्यक आहे. जेव्हा अनुप्रयोग समाप्त केला जातो, तेव्हा त्याने घेतलेली जागा ऑपरेटिंग सिस्टमला परत केली जाते.
मूळ कोड वि. जेव्हीएम
जेव्हा एखादा विकसक iOS ॲप लिहितो, तेव्हा ते थेट आयफोनच्या प्रोसेसरवर चालणाऱ्या कोडमध्ये संकलित करतात. या कोडला नेटिव्ह कोड म्हटले जाते कारण त्याला चालविण्यासाठी कोणतेही व्याख्या किंवा आभासी वातावरण आवश्यक नसते. दुसरीकडे, Android वेगळे आहे. जेव्हा Java कोड संकलित केला जातो, तेव्हा तो Java Bytecode इंटरमीडिएट कोडमध्ये रूपांतरित होतो, जो प्रोसेसर-स्वतंत्र असतो. त्यामुळे ते वेगवेगळ्या उत्पादकांकडून वेगवेगळ्या प्रोसेसरवर चालू शकते. क्रॉस-प्लॅटफॉर्म सुसंगततेसाठी याचे मोठे फायदे आहेत.
अर्थात, एक नकारात्मक बाजू देखील आहे. प्रत्येक ऑपरेटिंग सिस्टीम आणि प्रोसेसर संयोजनाला Java Virtual Machine (JVM) म्हणून ओळखले जाणारे वातावरण आवश्यक आहे. परंतु नेटिव्ह कोड JVM द्वारे अंमलात आणलेल्या कोडपेक्षा चांगले कार्य करतो, म्हणून JVM वापरल्याने अनुप्रयोगाद्वारे वापरल्या जाणाऱ्या RAM चे प्रमाण वाढते. त्यामुळे iOS ॲप्स कमी मेमरी वापरतात, सरासरी 40%. म्हणूनच ऍपलला त्याच्या आयफोनला Android उपकरणांइतकी रॅमने सुसज्ज करण्याची गरज नाही.
मी तंतोतंत तज्ञ नाही, परंतु मी माझ्या दृष्टीकोनातून एका वापरकर्त्याच्या दृष्टीकोनातून वर्णन करेन ज्याने 15 वर्षांपासून Android वापरला आहे आणि आता iPhone 2 मिनीमध्ये 13 महिने झाले आहेत. 8GB मेमरी असलेल्या अँड्रॉइडवर (सर्वात अलीकडे Samsung S21, Flip3) मी सहसा पूर्वी लॉन्च केलेल्या ऍप्लिकेशनवर ठराविक वेळेनंतर परत आलो आणि ते अजूनही RAM मध्ये लोड केले गेले होते, त्यामुळे ते पुन्हा सुरू झाले नाही आणि मी सहजतेने उचलू शकलो. सोडले. दुसरीकडे, अगदी 8GB मेमरीसह, मी RAM साफ करण्यासाठी आठवड्यातून एकदा सर्व अनुप्रयोग "शॉट डाउन" केले, कारण सिस्टम पूर्ण मेमरीसह धीमे होऊ लागली. मला आयफोनचा वेग कमी होण्यात समस्या नाही, परंतु दुसरीकडे, मला असे म्हणायचे आहे की जवळजवळ एकसारखे ऍप्लिकेशन वापरताना, त्याउलट, माझ्या बाबतीत असे घडते की जेव्हा मी पूर्वी लॉन्च केलेल्या ऍप्लिकेशनवर परत येतो, ते पुन्हा पूर्णपणे लोड होते आणि मी जिथे सोडले होते तेथून मी सहजतेने पुढे जाऊ शकत नाही.
कोणता पर्याय चांगला आहे? सांगणे कठीण आहे... अँड्रॉइडवरील ॲप्स मारणे आणि रॅम साफ करणे ही दोन क्लिकची बाब आहे. संपूर्ण ऍप्लिकेशन पुन्हा आयफोनवर लोड करणे इतके वेळखाऊ नाही, त्यामुळे काही फरक पडत नाही... अर्थात, आयफोनवर अधिक रॅम असणे आणि अँड्रॉइड प्रमाणे मल्टीटास्किंग करणे योग्य ठरेल :-D
शिट, तो पुन्हा मूर्ख आहे. एक तर, जावामध्ये अँड्रॉइड बऱ्याच काळापासून केले गेले नाही, त्यासाठी कोटलिन आहे. कचरा संग्राहक मेमरीचा प्रभारी आहे, जो iOS मध्ये सर्वात सोपा आहे, जो त्याच्या गैरसोयींसह देखील अस्तित्वात आहे. संपूर्ण गोष्ट अशी आहे की iOS ॲप्स स्क्रीनवरून काढताच त्यांना मारून टाकते. जेव्हा तुम्ही किल पिड ऑफ प्रोसेस टाईप करता तेव्हा हे लिनक्स प्रमाणेच मेमरी मुक्त करते. म्हणूनच ब्राउझर उघडण्यासाठी आणि मागील कामावर परत येण्यासाठी इतका वेळ लागतो. हा लेख प्रोग्रामिंगचे ज्ञान नसलेल्या iOS कट्टर व्यक्तीच्या X वर्ष जुन्या लेखाचे शब्दशः भाषांतर आहे. होय, नक्कीच, मेमरी व्यवस्थापन ही मुख्यतः प्रोग्रामरची जबाबदारी आहे, अनुप्रयोग काय करतो. जर तो त्यावर खोकला असेल तर जगात मेमरी लीक झाली आहे आणि pqk तुमच्याकडे X Gb मेमरी असू शकते आणि तरीही ती निरुपयोगी आहे. आणि अशा वेळी जेव्हा अनेक ऍप्लिकेशन्स फक्त WebView असतात, हे अगदी सोपे आहे, कारण ते स्वतः जे करू शकते ते खातो. लेख बकवास आहे, कचरा आहे.
Android आता jvm वापरत नाही, तर dvm वापरते. आणि त्याव्यतिरिक्त, ते नंतर ते मूळ एक्झिक्युटेबलमध्ये संकलित करते
Java अजूनही Android मध्ये आहे.