ஃபோன்களின் மென்மையான பல்பணிக்கு தேவையான ரேமின் சிறந்த அளவு மிகவும் விவாதத்திற்குரிய தலைப்பு. ஆப்பிள் அதன் ஐபோன்களில் சிறிய அளவைப் பெறுகிறது, இது ஆண்ட்ராய்டு தீர்வுகளை விட பெரும்பாலும் பயன்படுத்தக்கூடியது. ஐபோனில் எந்த விதமான ரேம் மெமரி மேனேஜ்மென்ட்டையும் நீங்கள் காண முடியாது, அதேசமயம் ஆண்ட்ராய்டுக்கு அதன் சொந்த பிரத்யேக செயல்பாடு உள்ளது.
நீங்கள் சென்றால், எடுத்துக்காட்டாக, Samsung Galaxy ஃபோன்களில் நாஸ்டவன் í -> சாதன பராமரிப்பு, எவ்வளவு இடம் இலவசம் மற்றும் எவ்வளவு ஆக்கிரமிக்கப்பட்டுள்ளது என்ற தகவலுடன் ரேம் குறிகாட்டியை இங்கே காணலாம். மெனுவைக் கிளிக் செய்த பிறகு, ஒவ்வொரு பயன்பாடும் எவ்வளவு நினைவகத்தை எடுத்துக்கொள்கிறது என்பதை நீங்கள் பார்க்கலாம், மேலும் இங்கே நினைவகத்தை அழிக்கும் விருப்பமும் உள்ளது. ரேம் பிளஸ் செயல்பாடும் இங்கே அமைந்துள்ளது. இதன் பொருள் என்னவென்றால், இது ஒரு குறிப்பிட்ட எண்ணிக்கையிலான ஜிபியை உள்ளக சேமிப்பகத்திலிருந்து கடித்துக் கொள்ளும், இது மெய்நிகர் நினைவகத்திற்குப் பயன்படுத்தும். iOS இல் இதுபோன்ற ஒன்றை உங்களால் கற்பனை செய்ய முடியுமா?
ஸ்மார்ட்போன்கள் ரேமை நம்பியுள்ளன. இது இயக்க முறைமையைச் சேமிக்கவும், பயன்பாடுகளைத் தொடங்கவும், அவற்றின் சில தரவை கேச் மற்றும் பஃபர் நினைவகத்தில் சேமிக்கவும் உதவுகிறது. எனவே, நீங்கள் அவற்றை பின்னணியில் இறக்கிவிட்டு சிறிது நேரம் கழித்து மீண்டும் திறந்தாலும், பயன்பாடுகள் சீராக இயங்கும் வகையில் RAM ஒழுங்கமைக்கப்பட்டு நிர்வகிக்கப்பட வேண்டும்.
ஸ்விஃப்ட் vs. ஜாவா
ஆனால் புதிய அப்ளிகேஷனைத் தொடங்கும் போது, அதை லோட் செய்து இயக்க நினைவகத்தில் இலவச இடம் இருக்க வேண்டும். அப்படி இல்லை என்றால் அந்த இடத்தை காலி செய்ய வேண்டும். எனவே ஏற்கனவே தொடங்கப்பட்ட பயன்பாடுகள் போன்ற சில இயங்கும் செயல்முறைகளை கணினி வலுக்கட்டாயமாக நிறுத்தும். இருப்பினும், இரண்டு அமைப்புகளும், அதாவது ஆண்ட்ராய்டு மற்றும் iOS, RAM உடன் வித்தியாசமாக வேலை செய்கின்றன.
iOS இயங்குதளம் ஸ்விஃப்ட்டில் எழுதப்பட்டுள்ளது, மேலும் ஐபோன்கள் உண்மையில் மூடிய பயன்பாடுகளிலிருந்து பயன்படுத்தப்பட்ட நினைவகத்தை மீண்டும் கணினியில் மறுசுழற்சி செய்ய வேண்டியதில்லை. இது iOS கட்டமைக்கப்பட்ட விதம் காரணமாகும், ஏனெனில் ஆப்பிள் அதன் ஐபோன்களில் மட்டுமே இயங்குவதால் அதன் மீது முழு கட்டுப்பாட்டையும் கொண்டுள்ளது. மாறாக, ஆண்ட்ராய்டு ஜாவாவில் எழுதப்பட்டுள்ளது மற்றும் பல சாதனங்களில் பயன்படுத்தப்படுகிறது, எனவே இது மிகவும் உலகளாவியதாக இருக்க வேண்டும். பயன்பாடு நிறுத்தப்பட்டதும், அது எடுத்த இடம் இயக்க முறைமைக்குத் திரும்பும்.
பூர்வீக குறியீடு எதிராக. ஜே.வி.எம்
ஒரு டெவலப்பர் ஒரு iOS பயன்பாட்டை எழுதும் போது, அவர்கள் அதை நேரடியாக ஐபோன் செயலியில் இயங்கக்கூடிய குறியீட்டில் தொகுக்கிறார்கள். இந்த குறியீடு நேட்டிவ் கோட் என்று அழைக்கப்படுகிறது, ஏனெனில் இது இயங்குவதற்கு விளக்கம் அல்லது மெய்நிகர் சூழல் தேவையில்லை. அண்ட்ராய்டு, மறுபுறம், வேறுபட்டது. ஜாவா குறியீடு தொகுக்கப்படும்போது, அது ஜாவா பைட்கோட் இடைநிலைக் குறியீட்டாக மாற்றப்படுகிறது, இது செயலி-சுயாதீனமானது. எனவே இது வெவ்வேறு உற்பத்தியாளர்களிடமிருந்து வெவ்வேறு செயலிகளில் இயங்க முடியும். இது கிராஸ்-பிளாட்ஃபார்ம் இணக்கத்தன்மைக்கு பெரும் நன்மைகளைக் கொண்டுள்ளது.
நிச்சயமாக, ஒரு குறைபாடு உள்ளது. ஒவ்வொரு இயங்குதளம் மற்றும் செயலி சேர்க்கைக்கு Java Virtual Machine (JVM) எனப்படும் சூழல் தேவை. ஆனால் நேட்டிவ் குறியீடு JVM மூலம் செயல்படுத்தப்படும் குறியீட்டை விட சிறப்பாக செயல்படுகிறது, எனவே JVM ஐப் பயன்படுத்துவது பயன்பாடு பயன்படுத்தும் ரேமின் அளவை அதிகரிக்கிறது. எனவே iOS பயன்பாடுகள் குறைந்த நினைவகத்தைப் பயன்படுத்துகின்றன, சராசரியாக 40%. அதனால்தான் ஆப்பிள் தனது ஐபோன்களில் ஆண்ட்ராய்டு சாதனங்களைப் போல அதிக ரேம் பொருத்த வேண்டியதில்லை.
நான் ஒரு நிபுணன் அல்ல, ஆனால் 15 வருடங்களாக ஆண்ட்ராய்டைப் பயன்படுத்தி, இப்போது ஐபோன் 2 மினியில் 13 மாதங்கள் ஆன ஒரு பயனரின் பார்வையில் இருந்து எனது பார்வையை விவரிக்கிறேன். 8ஜிபி மெமரி கொண்ட ஆண்ட்ராய்டில் (மிக சமீபத்தில் Samsung S21, Flip3) நான் வழக்கமாக குறிப்பிட்ட நேரத்திற்குப் பிறகு முன்பு தொடங்கப்பட்ட அப்ளிகேஷனுக்குத் திரும்பினேன், அது இன்னும் ரேமில் ஏற்றப்பட்டிருந்ததால், அது மீண்டும் தொடங்கவில்லை, நான் எங்கிருந்து சுமூகமாக எடுக்க முடியும் விட்டுவிட்டார். மறுபுறம், 8 ஜிபி நினைவகத்துடன் கூட, ரேமை அழிக்க வாரத்திற்கு ஒரு முறை அனைத்து பயன்பாடுகளையும் "சுட்டுவிட்டேன்", ஏனெனில் கணினி முழு நினைவகத்துடன் மெதுவாகத் தொடங்கியது. ஐபோனில் வேகத்தைக் குறைப்பதில் எனக்கு எந்தப் பிரச்சினையும் இல்லை, ஆனால் மறுபுறம், கிட்டத்தட்ட ஒரே மாதிரியான பயன்பாடுகளைப் பயன்படுத்தும்போது, இதற்கு மாறாக, முன்பு தொடங்கப்பட்ட பயன்பாட்டிற்கு நான் திரும்பும்போது, எனக்குத் தொடர்ந்து நிகழ்கிறது என்று நான் சொல்ல வேண்டும். அது மீண்டும் முழுவதுமாக ஏற்றப்படுகிறது, நான் விட்ட இடத்தை என்னால் சீராக எடுக்க முடியவில்லை.
எந்த விருப்பம் சிறந்தது? சொல்வது கடினம்... ஆண்ட்ராய்டில் உள்ள ஆப்ஸை அழிப்பது மற்றும் ரேமை அழிப்பது இரண்டு கிளிக்குகளின் விஷயம். ஐபோனில் முழு அப்ளிகேஷனையும் மீண்டும் லோட் செய்வது அவ்வளவு நேரத்தை எடுத்துக்கொள்வதில்லை, எனவே அது அவ்வளவு முக்கியமில்லை... நிச்சயமாக, ஐபோனில் அதிக ரேம் மற்றும் ஆண்ட்ராய்டில் உள்ளதைப் போல பல்பணி செய்வது சிறந்ததாக இருக்கும் :-D
அடடா, அது மீண்டும் முட்டாள்தனம். ஒன்று, நீண்ட காலமாக ஜாவாவில் ஆண்ட்ராய்டு செய்யப்படவில்லை, அதுதான் கோட்லின். குப்பை சேகரிப்பான் நினைவகத்தின் பொறுப்பில் உள்ளது, இது iOS இல் எளிமையானது, இது அதன் குறைபாடுகளுடன் கூட உள்ளது. முழு விஷயம் என்னவென்றால், நீங்கள் அவற்றை திரையில் இருந்து எடுத்தவுடன் iOS பயன்பாடுகளை அழிக்கிறது. இது லினக்ஸில் உள்ளதைப் போலவே நினைவகத்தையும் விடுவிக்கிறது. அதனால்தான் உலாவியைத் திறந்து முந்தைய வேலைக்குத் திரும்புவதற்கு இவ்வளவு நேரம் எடுக்கும். இந்தக் கட்டுரையானது, எந்த நிரலாக்க அறிவும் இல்லாத iOS வெறியர் ஒருவரின் X வயதுக் கட்டுரையின் சொல்லாடல் மொழிபெயர்ப்பாகும். ஆம், நிச்சயமாக, நினைவக மேலாண்மை என்பது புரோகிராமரின் பொறுப்பு, பயன்பாடு என்ன செய்கிறது. அவர் அதை இருமல் செய்தால், உலகில் ஒரு நினைவக கசிவு உள்ளது மற்றும் pqk நீங்கள் X Gb நினைவகத்தை வைத்திருக்கலாம், அது இன்னும் பயனற்றது. பல பயன்பாடுகள் WebView மட்டுமே இருக்கும் நேரத்தில், இது மிகவும் எளிமையானது, ஏனென்றால் அது தன்னால் முடிந்ததைச் சாப்பிடுகிறது. கட்டுரை முட்டாள்தனம், குப்பை.
Android இனி jvm ஐப் பயன்படுத்தாது, ஆனால் dvm. கூடுதலாக, அது ஒரு சொந்த இயங்கக்கூடியதாக தொகுக்கிறது
ஜாவா இன்னும் ஆண்ட்ராய்டில் உள்ளது.