د رام مثالی مقدار چې تلیفونونه د دوی د اسانه ملټي ټاسک کولو لپاره اړتیا لري خورا د بحث وړ موضوع ده. ایپل په خپلو آی فونونو کې د کوچنۍ اندازې سره تیریږي ، کوم چې ډیری وختونه د Android حلونو څخه ډیر د کارونې وړ وي. تاسو به په آی فون کې د RAM حافظې مدیریت هیڅ ډول ونه مومئ ، پداسې حال کې چې Android د دې لپاره خپل وقف شوی فعالیت لري.
که تاسو لاړ شئ، د بیلګې په توګه، په سامسنګ ګلیګسي تلیفونونو کې نستیوین í -> د وسیلې پاملرنهتاسو به دلته د RAM شاخص ومومئ چې څومره ځای خالي دی او څومره ځای نیول شوی. په مینو کې د کلیک کولو وروسته، تاسو کولی شئ وګورئ چې هر غوښتنلیک څومره حافظه اخلي، او تاسو دلته د حافظې پاکولو اختیار هم لرئ. د رام پلس فنکشن هم دلته موقعیت لري. د دې معنی دا ده چې دا به د داخلي ذخیرې څخه د جی بی یو ټاکلی شمیر بند کړي، کوم چې دا به د مجازی حافظې لپاره کاروي. ایا تاسو په iOS کې د دې په څیر یو څه تصور کولی شئ؟
سمارټ فونونه په رام تکیه کوي. دا دوی ته د عملیاتي سیسټم ذخیره کولو ، غوښتنلیکونو پیلولو او همدارنګه د دوی ځینې ډیټا په کیچ او بفر حافظه کې ذخیره کولو لپاره کار کوي. پدې توګه ، رام باید په داسې ډول تنظیم او اداره شي چې غوښتنلیکونه په اسانۍ سره پرمخ ولاړ شي ، حتی که تاسو یې شالید ته واړوئ او یو څه وروسته یې خلاص کړئ.
سویفټ vs. جاوا
مګر کله چې یو نوی اپلیکیشن پیل کړئ ، تاسو اړتیا لرئ په حافظه کې وړیا ځای ولرئ ترڅو دا بار او چل کړئ. که داسې نه وي، ځای باید خالي شي. سیسټم به له همدې امله په زور سره ځینې روانې پروسې لغوه کړي ، لکه غوښتنلیکونه چې دمخه پیل شوي. په هرصورت، دواړه سیسټمونه، د بیلګې په توګه، Android او iOS، د رام سره مختلف کار کوي.
د iOS عملیاتي سیسټم په سویفټ کې لیکل شوی ، او آی فون واقعیا اړتیا نلري چې د تړل شوي ایپسونو څخه کارول شوې حافظه بیرته سیسټم ته راوباسي. دا د iOS رامینځته شوي لارې له امله دی ، ځکه چې ایپل پدې باندې بشپړ کنټرول لري ځکه چې دا یوازې په خپلو آی فونونو کې چلیږي. برعکس، Android په جاوا کې لیکل شوی او په ډیری وسیلو کې کارول کیږي، نو دا باید ډیر نړیوال وي. کله چې غوښتنلیک پای ته ورسیږي، هغه ځای چې دا اخیستی بیرته عملیاتي سیسټم ته راستانه کیږي.
اصلي کوډ vs. JVM
کله چې یو پرمخ وړونکی د iOS اپلیکیشن لیکي، دوی دا په مستقیم ډول په کوډ کې تالیف کوي چې کولی شي د آی فون پروسیسر پرمخ بوځي. دې کوډ ته اصلي کوډ ویل کیږي ځکه چې دا د چلولو لپاره هیڅ تفسیر یا مجازی چاپیریال ته اړتیا نلري. له بلې خوا Android مختلف دی. کله چې جاوا کوډ تالیف شوی وي، دا د جاوا بایټکوډ منځګړیتوب کوډ ته بدلیږي، کوم چې د پروسیسر څخه خپلواک دی. دا له همدې امله د مختلف تولید کونکو څخه په مختلف پروسیسرونو چلولی شي. دا د کراس پلیټ فارم مطابقت لپاره لویې ګټې لري.
البته، یو نیمګړتیا هم شتون لري. هر عملیاتي سیسټم او پروسیسر ترکیب یو چاپیریال ته اړتیا لري چې د جاوا مجازی ماشین (JVM) په نوم پیژندل کیږي. مګر اصلي کوډ د JVM له لارې اجرا شوي کوډ څخه غوره فعالیت کوي ، نو د JVM کارول په ساده ډول د غوښتنلیک لخوا کارول شوي رام مقدار ډیروي. نو iOS ایپسونه لږ حافظه کاروي، په اوسط ډول 40٪. همدا لامل دی چې ایپل اړتیا نلري خپل آی فونونه دومره RAM سره سمبال کړي لکه څنګه چې دا د Android وسیلو سره کوي.
زه واقعیا یو متخصص نه یم ، مګر زه به زما لید د هغه کارونکي له لید څخه بیان کړم چې له 15 کلونو راهیسې یې انډرایډ کارولی او اوس د آی فون 2 منی ته 13 میاشتې دی. په انډرایډ کې د 8GB حافظې سره (په دې وروستیو کې سامسنګ S21، Flip3) زه معمولا د یو ټاکلي وخت وروسته مخکیني پیل شوي اپلیکیشن ته راستون شوم او دا لاهم په RAM کې بار شوی و ، نو دا ټول بیا پیل نه شو او زه کولی شم په اسانۍ سره هغه ځای غوره کړم چیرې چې زه پرېښودل له بلې خوا، حتی د 8GB حافظې سره، ما په اونۍ کې یو ځل ټول غوښتنلیکونه "شاټ" کړل ترڅو رام پاک کړي، ځکه چې سیسټم د بشپړ حافظې سره سست پیل کړی. زه د آی فون په سست کولو کې ستونزه نلرم ، مګر له بلې خوا ، زه باید ووایم چې کله نږدې ورته غوښتنلیکونه کاروئ ، برعکس ، دا په منظم ډول زما سره پیښیږي کله چې زه دمخه پیل شوي اپلیکیشن ته راستون شم ، دا په بشپړه توګه بیا باریږي او زه نشم کولی په اسانۍ سره دوام ورکړم چیرې چې ما پریښود.
کوم انتخاب غوره دی؟ ویل سخت دي… په Android کې د ایپسونو وژل او د رام پاکول د دوه کلیکونو مسله ده. په آی فون کې د ټول اپلیکیشن بیا پورته کول دومره وخت نه نیسي ، نو دا دومره مهمه نده ... البته ، دا به غوره وي چې په آی فون کې ډیر RAM ولرئ او د انډرایډ په څیر ملټي ټاسک کول :-D
خندا، دا بیا احمق دی. د یو شی لپاره، Android د اوږدې مودې لپاره په جاوا کې نه دی ترسره شوی، دا هغه څه دي چې کوټلین دی. د کثافاتو راټولونکی د حافظې مسؤل دی ، کوم چې په iOS کې ترټولو ساده دی ، کوم چې حتی د دې زیانونو سره شتون لري. ټوله خبره دا ده چې iOS هرڅومره ژر چې تاسو له سکرین څخه لرې کړئ ایپسونه وژني. دا حافظه د لینوکس په څیر آزادوي کله چې تاسو د پروسې کیل پیډ ټایپ کړئ. له همدې امله دا دومره وخت نیسي چې براوزر خلاص کړئ او پخواني کار ته راستون شئ. دا مقاله د X کلنې مقالې لفظي ژباړه ده چې د iOS مینه وال لخوا د پروګرام کولو پوهه نلري. هو، البته، د حافظې مدیریت په عمده توګه د پروګرامر مسؤلیت دی، هغه څه چې غوښتنلیک یې کوي. که هغه ټوخی وکړي، په نړۍ کې د حافظې لیک شتون لري او تاسو کولی شئ X Gb حافظه ولرئ او دا لاهم بې ګټې ده. او په داسې وخت کې چې ډیری غوښتنلیکونه یوازې WebView دي، دا خورا ساده دی، ځکه چې دا پخپله هغه څه خوري چې دا کولی شي. مقاله بې ځایه ده، کثافات.
Android نور jvm نه کاروي، مګر dvm. او سربیره پردې ، دا بیا دا په اصلي اجرایوي کې تالیف کوي
جاوا لاهم په Android کې دی.