Ang perpektong halaga ng RAM na kailangan ng mga telepono para sa kanilang maayos na multitasking ay isang pinagtatalunang paksa. Ang Apple ay nakakakuha ng mas maliit na sukat sa mga iPhone nito, na kadalasang mas magagamit kaysa sa mga solusyon sa Android. Hindi ka rin makakahanap ng anumang uri ng pamamahala ng memorya ng RAM sa iPhone, samantalang ang Android ay may sariling dedikadong function para dito.
Kung pupunta ka, halimbawa, sa mga teleponong Samsung Galaxy sa Mga setting -> Pangangalaga sa device, makakahanap ka ng indicator ng RAM dito na may impormasyon kung gaano karaming espasyo ang libre at kung gaano karami ang inookupahan. Pagkatapos mag-click sa menu, makikita mo kung gaano karaming memory ang kinukuha ng bawat application, at mayroon ka ring opsyon na i-clear ang memory dito. Ang RAM Plus function ay matatagpuan din dito. Ang ibig sabihin nito ay makakagat ito ng isang tiyak na bilang ng GB mula sa panloob na imbakan, na gagamitin nito para sa virtual memory. Maaari mo bang isipin ang isang bagay na tulad nito sa iOS?
Ang mga smartphone ay umaasa sa RAM. Ito ay nagsisilbi sa kanila na mag-imbak ng operating system, maglunsad ng mga application at mag-imbak din ng ilan sa kanilang data sa cache at buffer memory. Kaya, ang RAM ay dapat na organisado at pinamamahalaan sa paraang ang mga application ay maaaring tumakbo nang maayos, kahit na ihulog mo ang mga ito sa background at buksan muli ang mga ito pagkaraan ng ilang sandali.
Swift vs. Java
Ngunit kapag nagsisimula ng isang bagong application, kailangan mong magkaroon ng libreng espasyo sa memorya upang i-load at patakbuhin ito. Kung hindi ito ang kaso, ang lugar ay dapat bakante. Ang system ay samakatuwid ay puwersahang wakasan ang ilang tumatakbong mga proseso, tulad ng mga application na nagsimula na. Gayunpaman, ang parehong mga system, i.e. Android at iOS, ay gumagana nang magkaiba sa RAM.
Ang iOS operating system ay nakasulat sa Swift, at ang mga iPhone ay hindi talaga kailangang i-recycle ang ginamit na memorya mula sa mga saradong app pabalik sa system. Ito ay dahil sa paraan ng pagkabuo ng iOS, dahil ang Apple ay may ganap na kontrol dito dahil ito ay tumatakbo lamang sa mga iPhone nito. Sa kabaligtaran, ang Android ay nakasulat sa Java at ginagamit sa maraming device, kaya dapat itong maging mas pangkalahatan. Kapag natapos na ang application, ibabalik sa operating system ang puwang na kinuha nito.
Native code vs. JVM
Kapag ang isang developer ay sumulat ng isang iOS app, kino-compile nila ito nang direkta sa code na maaaring tumakbo sa processor ng iPhone. Ang code na ito ay tinatawag na native code dahil hindi ito nangangailangan ng interpretasyon o virtual na kapaligiran upang tumakbo. Ang Android, sa kabilang banda, ay iba. Kapag ang Java code ay pinagsama-sama, ito ay na-convert sa Java Bytecode intermediate code, na processor-independent. Maaari itong tumakbo sa iba't ibang mga processor mula sa iba't ibang mga tagagawa. Ito ay may malaking pakinabang para sa cross-platform compatibility.
Siyempre, mayroon ding downside. Ang bawat kumbinasyon ng operating system at processor ay nangangailangan ng isang kapaligiran na kilala bilang Java Virtual Machine (JVM). Ngunit ang katutubong code ay gumaganap nang mas mahusay kaysa sa code na pinaandar sa pamamagitan ng JVM, kaya ang paggamit ng JVM ay pinapataas lamang ang dami ng RAM na ginagamit ng application. Kaya ang iOS app ay gumagamit ng mas kaunting memorya, sa average na 40%. Iyon din ang dahilan kung bakit hindi kailangang bigyan ng Apple ang mga iPhone nito ng kasing dami ng RAM gaya ng ginagawa nito sa mga Android device.
Hindi ako eksaktong eksperto, ngunit ilalarawan ko ang aking pananaw mula sa pananaw ng isang user na gumamit ng android sa loob ng 15 taon at ngayon ay 2 buwan na sa iPhone 13 mini. Sa android na may 8GB na memorya (pinakabagong Samsung S21, Flip3) kadalasan ay bumalik ako pagkatapos ng isang tiyak na oras sa dating inilunsad na application at ito ay na-load pa rin sa RAM, kaya hindi ito nagsimulang muli at maayos kong makuha kung saan ako naiwan. Sa kabilang banda, kahit na may 8GB ng memorya, "binabaan" ko ang lahat ng mga application isang beses sa isang linggo upang i-clear ang RAM, dahil ang system ay nagsimulang bumagal nang may buong memorya. Wala akong problema sa pagbagal sa iPhone, ngunit sa kabilang banda, kailangan kong sabihin na kapag gumagamit ng halos magkaparehong mga application, sa kabaligtaran, regular itong nangyayari sa akin na kapag bumalik ako sa isang naunang inilunsad na application, nagloload ulit ito ng buo at hindi na ako makapagpatuloy ng maayos kung saan ako tumigil .
Aling pagpipilian ang mas mahusay? Mahirap sabihin... Ang pagpatay sa mga app sa android at pag-clear ng RAM ay isang bagay ng dalawang pag-click. Ang paglo-load muli ng buong application sa iPhone ay hindi masyadong nakakaubos ng oras, kaya hindi na mahalaga... Siyempre, mainam na magkaroon ng mas maraming RAM sa iPhone at multitasking tulad ng sa Android :-D
Shit, tanga na naman. Sa isang bagay, matagal nang hindi nagagawa ang Android sa Java, para iyon kay Kotlin. Ang kolektor ng basura ang namamahala sa memorya, na siyang pinakasimple sa iOS, na umiiral kahit na may mga disadvantages nito. Ang buong bagay ay pinapatay ng iOS ang mga app sa sandaling alisin mo ang mga ito sa screen. Pinapalaya nito ang memorya tulad ng sa linux kapag nag-type ka ng kill pid ng isang proseso. Kaya naman napakatagal bago buksan ang browser at bumalik sa dating gawain. Ang artikulong ito ay isang verbatim na pagsasalin ng isang X taong gulang na artikulo ng isang iOS fanatic na walang kaalaman sa programming. Oo, siyempre, ang pamamahala ng memorya ay pangunahing responsibilidad ng programmer, kung ano ang ginagawa ng application. Kung inuubo niya ito, may memory leak sa mundo at pqk pwede kang magkaroon ng X Gb ng memory at wala pa ring silbi. At sa panahon na maraming mga application ay WebView lamang, ito ay napaka-simple, dahil ito mismo ay kumakain ng kung ano ang magagawa nito. Ang artikulo ay walang kapararakan, basura.
Hindi na gumagamit ng jvm ang Android, ngunit dvm. At bilang karagdagan, pagkatapos ay i-compile ito sa isang katutubong executable
Ang Java ay nasa Android pa rin.