ريم جي مثالي مقدار جيڪا فونن کي انهن جي هموار ملٽي ٽاسڪنگ لاءِ گهربل آهي ڪافي بحث ٿيل موضوع آهي. ايپل پنهنجي آئي فونز ۾ هڪ ننڍڙي سائيز سان حاصل ڪري ٿو، جيڪو اڪثر ڪري Android حلن کان وڌيڪ استعمال لائق آهي. توهان کي آئي فون تي ڪنهن به قسم جي ريم ميموري مئنيجمينٽ به نه ملندي، جڏهن ته اينڊرائيڊ وٽ ان لاءِ پنهنجو مخصوص فنڪشن آهي.
جيڪڏهن توهان وڃو، مثال طور، Samsung Galaxy فون ۾ نرسٽنيو -> ڊوائيس سنڀال، توهان هتي هڪ RAM اشارو ڳوليندا معلومات سان گڏ ڪيتري جاءِ خالي آهي ۽ ڪيترو قبضو آهي. مينيو تي ڪلڪ ڪرڻ کان پوءِ، توهان ڏسي سگهو ٿا ته هر ايپليڪيشن ڪيتري ميموري وٺي رهي آهي، ۽ توهان وٽ اهو اختيار پڻ آهي ته توهان هتي ميموري کي صاف ڪري سگھو ٿا. رام پلس فنڪشن پڻ هتي واقع آهي. ان جو مطلب اهو آهي ته اهو اندروني اسٽوريج مان GB جي هڪ خاص تعداد کي ڪٽيندو، جيڪو اهو ورچوئل ميموري لاءِ استعمال ڪندو. ڇا توهان تصور ڪري سگهو ٿا اهڙي طرح iOS تي؟
سمارٽ فونز ريم تي ڀاڙين ٿا. اهو انهن کي آپريٽنگ سسٽم کي ذخيرو ڪرڻ، ايپليڪيشنن کي لانچ ڪرڻ ۽ ڪيش ۽ بفر ميموري ۾ انهن جي ڪجهه ڊيٽا کي ذخيرو ڪرڻ جي خدمت ڪري ٿو. اهڙيء طرح، رام کي منظم ۽ منظم ڪيو وڃي اهڙي طرح سان ايپليڪيشنون آساني سان هلائي سگهن ٿيون، جيتوڻيڪ جيڪڏهن توهان انهن کي پس منظر ۾ ڇڏي ڏيو ۽ انهن کي ٿوري دير کان پوء ٻيهر کوليو.
Swift vs. جاوا
پر جڏهن نئين ايپليڪيشن شروع ڪري رهيا آهيو، توهان کي ان کي لوڊ ڪرڻ ۽ هلائڻ لاءِ ياداشت ۾ خالي جاءِ هجڻ گهرجي. جيڪڏهن اهو معاملو نه آهي، جڳهه کي خالي ڪيو وڃي. تنهن ڪري سسٽم زوري طور تي ڪجهه هلندڙ عملن کي ختم ڪري ڇڏيندو، جهڙوڪ ايپليڪيشنون جيڪي اڳ ۾ شروع ٿي چڪا آهن. جڏهن ته، ٻئي سسٽم، يعني Android ۽ iOS، رام سان مختلف ڪم ڪن ٿا.
iOS آپريٽنگ سسٽم Swift ۾ لکيل آهي، ۽ آئي فونز کي اصل ۾ استعمال ٿيل ميموري کي ٻيهر سسٽم ۾ بند ٿيل ايپس مان ٻيهر استعمال ڪرڻ جي ضرورت ناهي. اهو iOS جي ٺهيل طريقي جي ڪري آهي، ڇاڪاڻ ته ايپل ان تي مڪمل ڪنٽرول آهي ڇو ته اهو صرف پنهنجي آئي فونز تي هلندو آهي. ان جي ابتڙ، Android جاوا ۾ لکيل آهي ۽ ڪيترن ئي ڊوائيسز تي استعمال ڪيو ويندو آهي، تنهنڪري اهو وڌيڪ عالمگير هجڻ گهرجي. جڏهن ايپليڪيشن ختم ڪئي وئي آهي، اها جاء ورتي وئي آهي آپريٽنگ سسٽم ڏانهن واپس.
اصلي ڪوڊ بمقابله. جي وي ايم
جڏهن هڪ ڊولپر هڪ iOS ايپ لکندو آهي، اهي ان کي سڌو سنئون ڪوڊ ۾ گڏ ڪن ٿا جيڪو آئي فون جي پروسيسر تي هلائي سگھي ٿو. هن ڪوڊ کي مقامي ڪوڊ سڏيو ويندو آهي ڇاڪاڻ ته ان کي هلائڻ لاءِ ڪنهن به تعبير يا مجازي ماحول جي ضرورت ناهي. Android، ٻئي طرف، مختلف آهي. جڏهن جاوا ڪوڊ مرتب ڪيو ويندو آهي، اهو Java Bytecode وچولي ڪوڊ ۾ تبديل ڪيو ويندو آهي، جيڪو پروسيسر کان آزاد آهي. تنهن ڪري اهو هلائي سگھي ٿو مختلف پروسيسرز تي مختلف ٺاهيندڙن کان. هي ڪراس پليٽ فارم مطابقت لاءِ وڏا فائدا آهن.
يقينا، اتي پڻ هڪ downside آهي. هر آپريٽنگ سسٽم ۽ پروسيسر جي ميلاپ کي هڪ ماحول جي ضرورت آهي جنهن کي جاوا ورچوئل مشين (JVM) طور سڃاتو وڃي ٿو. پر اصلي ڪوڊ JVM ذريعي جاري ڪيل ڪوڊ کان بهتر ڪم ڪري ٿو، تنهن ڪري JVM استعمال ڪندي صرف ايپليڪيشن پاران استعمال ڪيل رام جي مقدار کي وڌائي ٿو. تنهن ڪري iOS ايپس گهٽ ميموري استعمال ڪن ٿيون، سراسري طور تي 40٪. اهو ئي سبب آهي ته ايپل کي پنهنجي آئي فونز کي ايتري ريم سان ليس ڪرڻ جي ضرورت ناهي جيتري اها Android ڊوائيسز سان آهي.
مان بلڪل هڪ ماهر نه آهيان، پر مان هڪ صارف جي نقطه نظر کان پنهنجي نقطه نظر کي بيان ڪندس، جيڪو 15 سالن تائين اينڊرائيڊ استعمال ڪيو آهي ۽ هاڻي آئي فون 2 ميني ۾ 13 مهينا آهي. Android تي 8GB ميموري سان (سڀ کان تازو Samsung S21, Flip3) مان عام طور تي هڪ خاص وقت کان پوءِ اڳي لانچ ٿيل ايپليڪيشن ڏانهن واپس ايندو هوس ۽ اهو اڃا تائين رام ۾ لوڊ ٿيل هو، تنهن ڪري اهو ٻيهر شروع نه ٿيو ۽ مان آساني سان وٺي سگهان ٿو جتي آئون. ڇڏي ويو. ٻئي طرف، 8GB جي ميموري سان به، مان رام کي صاف ڪرڻ لاءِ هفتي ۾ هڪ ڀيرو سڀني ايپليڪيشنن کي ”شاٽ ڊائون“ ڪندو آهيان، ڇاڪاڻ ته سسٽم مڪمل ميموري سان سست ٿيڻ شروع ڪيو هو. مون کي آئي فون تي سست ٿيڻ ۾ ڪو مسئلو ناهي، پر ٻئي طرف، مون کي اهو چوڻ آهي ته جڏهن تقريبا هڪجهڙائي واري ايپليڪيشنن کي استعمال ڪندي، ان جي برعڪس، اهو مون سان باقاعده ٿئي ٿو ته جڏهن آئون اڳئين لانچ ٿيل ايپليڪيشن تي واپس وڃان ٿو، اهو مڪمل طور تي ٻيهر لوڊ ٿئي ٿو ۽ مان آساني سان جاري نه ٿو رکي سگهان جتان مون ڇڏي ڏنو.
ڪهڙو اختيار بهتر آهي؟ چوڻ مشڪل... اينڊرائيڊ تي ايپس کي مارڻ ۽ رام صاف ڪرڻ ٻن ڪلڪن جو معاملو آهي. آئي فون تي پوري ايپليڪيشن کي ٻيهر لوڊ ڪرڻ ايترو وقت وٺڻ وارو نه آهي، ان ڪري ان ۾ ڪو به فرق نه پوندو... يقيناً، آئي فون تي وڌيڪ ريم ۽ ملٽي ٽاسڪنگ جهڙو اينڊرائيڊ تي رکڻ مثالي هوندو :-D
شٽ، اهو وري بيوقوف آهي. هڪ شيءِ لاءِ، Android گهڻي عرصي کان جاوا ۾ نه ڪيو ويو آهي، اهو ئي آهي ڪوٽلن لاءِ. گاربيج ڪليڪٽر ميموري جو انچارج آهي، جيڪو iOS ۾ تمام سادو آهي، جيڪو ان جي نقصانن سان به موجود آهي. سڄي شيء اها آهي ته iOS ايپس کي ماريندو آهي جيترو جلدي توهان انهن کي اسڪرين تان هٽايو. هي ميموري کي آزاد ڪري ٿو جيئن لينڪس تي جڏهن توهان ٽائپ ڪريو ڪِل پِڊ آف پروسيس. اهو ئي سبب آهي ته اهو برائوزر کولڻ ۽ پوئين ڪم ڏانهن موٽڻ ۾ گهڻو وقت وٺندو آهي. هي آرٽيڪل هڪ X سال پراڻي آرٽيڪل جو لفظي ترجمو آهي هڪ iOS پرستار طرفان بغير ڪنهن پروگرامنگ جي ڄاڻ سان. ها، يقينا، ميموري جو انتظام بنيادي طور تي پروگرامر جي ذميواري آهي، ايپليڪيشن ڇا ڪري ٿي. جيڪڏهن هو ان تي کڄي ٿو، اتي دنيا ۾ هڪ ميموري ليڪ آهي ۽ توهان وٽ X Gb ياداشت ٿي سگهي ٿي ۽ اهو اڃا تائين بيڪار آهي. ۽ هڪ وقت ۾ جڏهن ڪيتريون ئي ايپليڪيشنون صرف WebView آهن، اهو تمام سادو آهي، ڇاڪاڻ ته اهو پاڻ کائي ٿو جيڪو اهو ڪري سگهي ٿو. مضمون بيڪار آهي، گندگي.
Android هاڻي jvm استعمال نٿو ڪري، پر dvm. ۽ ان کان علاوه، اهو وري ان کي مرتب ڪري ٿو هڪ مقامي عملدار
جاوا اڃا تائين Android ۾ آهي.