Itxi iragarkia

Telefonoek beren multiataza leunetarako behar duten RAM kopuru aproposa nahiko eztabaidatua da. Apple-k bere iPhone-en tamaina txikiagoarekin lortzen du, askotan Android irtenbideak baino erabilgarriagoa dena. iPhonean ere ez duzu RAM memoria-kudeaketarik aurkituko, Android-ek horretarako bere funtzio dedikatua du. 

Joan bazara, adibidez, Samsung Galaxy telefonoetan Ezarpenak -> Gailuaren zainketa, RAM adierazle bat aurkituko duzu hemen zenbat leku libre dagoen eta zenbat okupatutako informazioarekin. Menuan klik egin ondoren, aplikazio bakoitzak zenbat memoria hartzen duen ikus dezakezu, eta memoria garbitzeko aukera ere baduzu hemen. RAM Plus funtzioa ere hemen dago. Bere esanahia da barneko biltegiratzetik GB kopuru jakin bat moztuko duela, memoria birtualerako erabiliko duena. Imajinatzen al duzu horrelako zerbait iOS-en?

Smartphoneak RAM-ean oinarritzen dira. Sistema eragilea gordetzeko, aplikazioak abiarazteko eta haien datu batzuk cache eta buffer memorian gordetzeko balio du. Horrela, RAM aplikazioak ondo exekutatzeko moduan antolatu eta kudeatu behar da, nahiz eta atzeko planoan utzi eta pixka bat igaro ondoren berriro ireki.

Azkarra vs. Java 

Baina aplikazio berri bat abiaraztean, memorian leku librea izan behar duzu kargatu eta exekutatzeko. Hala ez bada, lekua utzi beharko da. Beraz, sistemak indarrez amaituko ditu martxan dauden prozesu batzuk, hala nola, dagoeneko hasita dauden aplikazioak. Hala ere, bi sistemek, hau da, Androidek eta iOSek, modu ezberdinean funtzionatzen dute RAMarekin.

iOS sistema eragilea Swift-en idatzita dago, eta iPhoneek ez dute zertan erabilitako memoria birziklatu aplikazio itxietatik berriro sistemara. Hau iOS eraikitzeko moduagatik gertatzen da, Apple-k kontrol osoa baitu bere iPhoneetan bakarrik exekutatzen baita. Aitzitik, Android Javan idatzita dago eta gailu askotan erabiltzen da, beraz unibertsalagoa izan behar du. Aplikazioa amaitzen denean, hartzen zuen espazioa sistema eragilera itzultzen da.

Kode natiboa vs. JVM 

Garatzaile batek iOS aplikazio bat idazten duenean, zuzenean konpilatzen du iPhonearen prozesadorean exekutatu daitekeen kodean. Kode horri jatorrizko kode deitzen zaio, ez duelako interpretaziorik edo ingurune birtualrik behar exekutatzeko. Android, berriz, ezberdina da. Java kodea konpilatzen denean, Java Bytecode bitarteko kodea bihurtzen da, prozesadoretik independentea dena. Hortaz, fabrikatzaile ezberdinetako prozesadore ezberdinetan exekutatu daiteke. Honek abantaila handiak ditu plataforma anitzeko bateragarritasunerako. 

Noski, alde txarra ere badago. Sistema eragile eta prozesadore konbinazio bakoitzak Java Makina Birtuala (JVM) izenez ezagutzen den ingurune bat behar du. Baina jatorrizko kodeak JVM bidez exekutatutako kodea baino hobeto funtzionatzen du, beraz, JVM erabiltzeak aplikazioak erabiltzen duen RAM kopurua handitzen du. Beraz, iOS aplikazioek memoria gutxiago erabiltzen dute, batez beste %40. Horregatik ere Applek ez du bere iPhoneak Android gailuekin bezainbeste RAM batekin hornitu beharrik. 

.