ഫോണുകൾക്ക് അവയുടെ സുഗമമായ മൾട്ടിടാസ്കിംഗിന് ആവശ്യമായ റാമിൻ്റെ അനുയോജ്യമായ അളവ് തികച്ചും ചർച്ചാവിഷയമാണ്. ആൻഡ്രോയിഡ് സൊല്യൂഷനുകളേക്കാൾ പലപ്പോഴും ഉപയോഗയോഗ്യമായ ഐഫോണുകളിൽ ആപ്പിൾ ചെറിയ വലിപ്പത്തിൽ എത്തുന്നു. ഐഫോണിൽ നിങ്ങൾക്ക് ഒരു തരത്തിലുള്ള റാം മെമ്മറി മാനേജ്മെൻ്റും കണ്ടെത്താനാകില്ല, അതേസമയം ആൻഡ്രോയിഡിന് അതിൻ്റേതായ പ്രത്യേക പ്രവർത്തനമുണ്ട്.
നിങ്ങൾ പോകുകയാണെങ്കിൽ, ഉദാഹരണത്തിന്, Samsung Galaxy ഫോണുകളിൽ നാസ്തവെൻ -> ഉപകരണ പരിചരണം, എത്ര സ്ഥലം സൗജന്യമാണ്, എത്രത്തോളം അധിനിവേശം തുടങ്ങിയ വിവരങ്ങളുള്ള ഒരു റാം ഇൻഡിക്കേറ്റർ നിങ്ങൾ ഇവിടെ കണ്ടെത്തും. മെനുവിൽ ക്ലിക്ക് ചെയ്ത ശേഷം, ഓരോ ആപ്ലിക്കേഷനും എത്ര മെമ്മറി എടുക്കുന്നുവെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും, കൂടാതെ മെമ്മറി ക്ലിയർ ചെയ്യാനുള്ള ഓപ്ഷനും ഇവിടെയുണ്ട്. റാം പ്ലസ് ഫംഗ്ഷനും ഇവിടെയാണ്. ഇൻ്റേണൽ സ്റ്റോറേജിൽ നിന്ന് ഒരു നിശ്ചിത എണ്ണം ജിബിയെ അത് കടിച്ചുകളയും, അത് വെർച്വൽ മെമ്മറിക്കായി ഉപയോഗിക്കും എന്നതാണ് ഇതിൻ്റെ അർത്ഥം. iOS-ൽ ഇതുപോലൊന്ന് നിങ്ങൾക്ക് സങ്കൽപ്പിക്കാൻ കഴിയുമോ?
സ്മാർട്ട്ഫോണുകൾ റാമിനെ ആശ്രയിക്കുന്നു. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം സംഭരിക്കുന്നതിനും ആപ്ലിക്കേഷനുകൾ സമാരംഭിക്കുന്നതിനും അവരുടെ ചില ഡാറ്റ കാഷെയിലും ബഫർ മെമ്മറിയിലും സംഭരിക്കുന്നതിനും ഇത് അവരെ സഹായിക്കുന്നു. അതിനാൽ, ആപ്ലിക്കേഷനുകൾ പശ്ചാത്തലത്തിലേക്ക് ഡ്രോപ്പ് ചെയ്ത് കുറച്ച് സമയത്തിന് ശേഷം വീണ്ടും തുറന്നാലും, അവ സുഗമമായി പ്രവർത്തിക്കാൻ കഴിയുന്ന തരത്തിൽ റാം ഓർഗനൈസുചെയ്യുകയും നിയന്ത്രിക്കുകയും വേണം.
സ്വിഫ്റ്റ് vs. ജാവ
എന്നാൽ ഒരു പുതിയ ആപ്ലിക്കേഷൻ ആരംഭിക്കുമ്പോൾ, അത് ലോഡ് ചെയ്യാനും പ്രവർത്തിപ്പിക്കാനും നിങ്ങൾക്ക് മെമ്മറിയിൽ ശൂന്യമായ ഇടം ഉണ്ടായിരിക്കണം. ഇതല്ലെങ്കിൽ സ്ഥലം ഒഴിയണം. അതിനാൽ, ഇതിനകം ആരംഭിച്ച ആപ്ലിക്കേഷനുകൾ പോലുള്ള ചില റണ്ണിംഗ് പ്രക്രിയകൾ സിസ്റ്റം നിർബന്ധിതമായി അവസാനിപ്പിക്കും. എന്നിരുന്നാലും, രണ്ട് സിസ്റ്റങ്ങളും, അതായത് ആൻഡ്രോയിഡ്, ഐഒഎസ്, റാമിൽ വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു.
ഐഒഎസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം സ്വിഫ്റ്റിലാണ് എഴുതിയിരിക്കുന്നത്, ഐഫോണുകൾക്ക് അടച്ച ആപ്പുകളിൽ നിന്ന് ഉപയോഗിച്ച മെമ്മറി സിസ്റ്റത്തിലേക്ക് റീസൈക്കിൾ ചെയ്യേണ്ട ആവശ്യമില്ല. ഐഒഎസ് നിർമ്മിച്ചിരിക്കുന്ന രീതിയാണ് ഇതിന് കാരണം, കാരണം ആപ്പിളിന് അതിൻ്റെ ഐഫോണുകളിൽ മാത്രം പ്രവർത്തിക്കുന്നതിനാൽ അതിൻ്റെ പൂർണ്ണ നിയന്ത്രണമുണ്ട്. നേരെമറിച്ച്, ആൻഡ്രോയിഡ് ജാവയിൽ എഴുതിയതാണ്, അത് പല ഉപകരണങ്ങളിലും ഉപയോഗിക്കുന്നു, അതിനാൽ ഇത് കൂടുതൽ സാർവത്രികമായിരിക്കണം. ആപ്ലിക്കേഷൻ അവസാനിപ്പിക്കുമ്പോൾ, അത് എടുത്ത സ്ഥലം ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലേക്ക് തിരികെ നൽകും.
നേറ്റീവ് കോഡ് vs. ജെ.വി.എം
ഒരു ഡവലപ്പർ ഒരു iOS ആപ്പ് എഴുതുമ്പോൾ, അവർ അത് നേരിട്ട് iPhone-ൻ്റെ പ്രോസസറിൽ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന കോഡിലേക്ക് കംപൈൽ ചെയ്യുന്നു. ഈ കോഡിനെ നേറ്റീവ് കോഡ് എന്ന് വിളിക്കുന്നു, കാരണം ഇതിന് പ്രവർത്തിക്കാൻ വ്യാഖ്യാനമോ വെർച്വൽ എൻവയോൺമെൻ്റോ ആവശ്യമില്ല. മറുവശത്ത് ആൻഡ്രോയിഡ് വ്യത്യസ്തമാണ്. ജാവ കോഡ് കംപൈൽ ചെയ്യുമ്പോൾ, അത് ജാവ ബൈറ്റ്കോഡ് ഇൻ്റർമീഡിയറ്റ് കോഡായി പരിവർത്തനം ചെയ്യപ്പെടുന്നു, അത് പ്രോസസ്സർ-സ്വതന്ത്രമാണ്. അതിനാൽ വ്യത്യസ്ത നിർമ്മാതാക്കളിൽ നിന്നുള്ള വ്യത്യസ്ത പ്രോസസ്സറുകളിൽ ഇത് പ്രവർത്തിക്കാൻ കഴിയും. ക്രോസ്-പ്ലാറ്റ്ഫോം അനുയോജ്യതയ്ക്ക് ഇതിന് വലിയ ഗുണങ്ങളുണ്ട്.
തീർച്ചയായും, ഒരു കുറവും ഉണ്ട്. ഓരോ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനും പ്രോസസർ കോമ്പിനേഷനും ജാവ വെർച്വൽ മെഷീൻ (ജെവിഎം) എന്നറിയപ്പെടുന്ന ഒരു പരിസ്ഥിതി ആവശ്യമാണ്. എന്നാൽ ജെവിഎം വഴി നടപ്പിലാക്കുന്ന കോഡിനേക്കാൾ നേറ്റീവ് കോഡ് മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നു, അതിനാൽ ജെവിഎം ഉപയോഗിക്കുന്നത് ആപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന റാമിൻ്റെ അളവ് വർദ്ധിപ്പിക്കുന്നു. അതിനാൽ iOS ആപ്പുകൾ ശരാശരി 40% മെമ്മറി കുറവാണ് ഉപയോഗിക്കുന്നത്. അതുകൊണ്ടാണ് ആൻഡ്രോയിഡ് ഉപകരണങ്ങളിൽ ഉള്ളത് പോലെ ആപ്പിളിന് ഐഫോണുകളിൽ റാം സജ്ജീകരിക്കേണ്ടതില്ല.
ഞാൻ കൃത്യമായി ഒരു വിദഗ്ധനല്ല, എന്നാൽ 15 വർഷമായി ആൻഡ്രോയിഡ് ഉപയോഗിക്കുന്ന ഒരു ഉപയോക്താവിൻ്റെ വീക്ഷണകോണിൽ നിന്ന് ഞാൻ എൻ്റെ കാഴ്ചപ്പാട് വിവരിക്കും, ഇപ്പോൾ iPhone 2 മിനിയിൽ 13 മാസമായി. 8GB മെമ്മറിയുള്ള android-ൽ (ഏറ്റവും അടുത്തിടെ Samsung S21, Flip3) ഞാൻ സാധാരണയായി ഒരു നിശ്ചിത സമയത്തിന് ശേഷം മുമ്പ് ലോഞ്ച് ചെയ്ത ആപ്ലിക്കേഷനിലേക്ക് മടങ്ങും, അത് ഇപ്പോഴും റാമിൽ ലോഡുചെയ്തിരുന്നു, അതിനാൽ ഇത് വീണ്ടും ആരംഭിച്ചില്ല, എനിക്ക് എവിടെ നിന്ന് സുഗമമായി എടുക്കാം വിട്ടുകളഞ്ഞു. മറുവശത്ത്, 8 ജിബി മെമ്മറി ഉണ്ടായിരുന്നിട്ടും, റാം ക്ലിയർ ചെയ്യുന്നതിനായി ഞാൻ ആഴ്ചയിൽ ഒരിക്കൽ എല്ലാ ആപ്ലിക്കേഷനുകളും "ഷോട്ട് ഡൗൺ" ചെയ്തു, കാരണം സിസ്റ്റം പൂർണ്ണ മെമ്മറിയിൽ മന്ദഗതിയിലാകാൻ തുടങ്ങി. ഐഫോണിൽ വേഗത കുറയ്ക്കുന്നതിൽ എനിക്ക് പ്രശ്നമില്ല, മറുവശത്ത്, ഏതാണ്ട് സമാനമായ ആപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കുമ്പോൾ, നേരെമറിച്ച്, മുമ്പ് സമാരംഭിച്ച ഒരു ആപ്ലിക്കേഷനിലേക്ക് ഞാൻ മടങ്ങുമ്പോൾ, എനിക്ക് പതിവായി സംഭവിക്കുന്നത്, അത് വീണ്ടും പൂർണ്ണമായി ലോഡുചെയ്യുന്നു, ഞാൻ നിർത്തിയിടത്തുനിന്നും എനിക്ക് സുഗമമായി തുടരാൻ കഴിയില്ല.
ഏത് ഓപ്ഷനാണ് നല്ലത്? പറയാൻ പ്രയാസമാണ്... ആൻഡ്രോയിഡിലെ ആപ്പുകൾ ഇല്ലാതാക്കുന്നതും റാം ക്ലിയർ ചെയ്യുന്നതും രണ്ട് ക്ലിക്കുകളുടെ കാര്യമാണ്. ഐഫോണിൽ മുഴുവൻ ആപ്ലിക്കേഷനും വീണ്ടും ലോഡുചെയ്യുന്നത് അത്ര സമയമെടുക്കുന്ന കാര്യമല്ല, അതിനാൽ ഇത് കാര്യമാക്കേണ്ടതില്ല... തീർച്ചയായും, iPhone-ൽ കൂടുതൽ റാമും ആൻഡ്രോയിഡ് പോലെ മൾട്ടിടാസ്കിംഗും ഉണ്ടായിരിക്കുന്നത് അനുയോജ്യമാണ് :-D
ഷിറ്റ്, ഇത് വീണ്ടും മണ്ടത്തരമാണ്. ഒരു കാര്യം, ആൻഡ്രോയിഡ് ജാവയിൽ വളരെക്കാലമായി ചെയ്തിട്ടില്ല, അതിനാണ് കോട്ലിൻ. ഗാർബേജ് കളക്ടർ മെമ്മറിയുടെ ചുമതല വഹിക്കുന്നു, ഇത് iOS- ലെ ഏറ്റവും ലളിതമാണ്, അത് അതിൻ്റെ ദോഷങ്ങളോടെ പോലും നിലനിൽക്കുന്നു. നിങ്ങൾ സ്ക്രീനിൽ നിന്ന് പുറത്തെടുക്കുമ്പോൾ തന്നെ iOS ആപ്പുകളെ ഇല്ലാതാക്കുന്നു എന്നതാണ് മൊത്തത്തിലുള്ള കാര്യം. നിങ്ങൾ ഒരു പ്രോസസിൻ്റെ കിൽ പിഡ് ടൈപ്പ് ചെയ്യുമ്പോൾ ലിനക്സിലെന്നപോലെ ഇത് മെമ്മറി സ്വതന്ത്രമാക്കുന്നു. അതുകൊണ്ടാണ് ബ്രൗസർ തുറന്ന് മുമ്പത്തെ ജോലിയിലേക്ക് മടങ്ങാൻ ഇത്രയും സമയമെടുക്കുന്നത്. ഈ ലേഖനം പ്രോഗ്രാമിംഗ് പരിജ്ഞാനമില്ലാത്ത ഒരു iOS ആരാധകൻ്റെ X വർഷം പഴക്കമുള്ള ഒരു ലേഖനത്തിൻ്റെ പദാനുപദ വിവർത്തനമാണ്. അതെ, തീർച്ചയായും, മെമ്മറി മാനേജ്മെൻ്റ് പ്രധാനമായും പ്രോഗ്രാമറുടെ ഉത്തരവാദിത്തമാണ്, ആപ്ലിക്കേഷൻ എന്താണ് ചെയ്യുന്നത്. അവൻ അതിൽ ചുമയാൽ, ലോകത്ത് മെമ്മറി ലീക്ക് ഉണ്ട്, pqk നിങ്ങൾക്ക് X Gb മെമ്മറി ഉണ്ടായിരിക്കാം, അത് ഇപ്പോഴും ഉപയോഗശൂന്യമാണ്. പല ആപ്ലിക്കേഷനുകളും വെബ്വ്യൂ മാത്രമായിരിക്കുന്ന ഒരു സമയത്ത്, ഇത് വളരെ ലളിതമാണ്, കാരണം അത് സ്വയം കഴിയുന്നത് കഴിക്കുന്നു. ലേഖനം അസംബന്ധമാണ്, മാലിന്യമാണ്.
ആൻഡ്രോയിഡ് ഇപ്പോൾ jvm അല്ല, dvm ഉപയോഗിക്കുന്നു. കൂടാതെ, ഇത് ഒരു നേറ്റീവ് എക്സിക്യൂട്ടബിളിലേക്ക് കംപൈൽ ചെയ്യുന്നു
ജാവ ഇപ്പോഴും ആൻഡ്രോയിഡിലാണ്.