Die ideale hoeveelheid RAM wat fone benodig vir hul gladde multitasking is nogal 'n gedebatteerde onderwerp. Apple kom oor die weg met 'n kleiner grootte in sy iPhones, wat dikwels meer bruikbaar is as Android-oplossings. Jy sal ook geen soort RAM-geheuebestuur op die iPhone vind nie, terwyl Android sy eie toegewyde funksie hiervoor het.
As jy gaan, byvoorbeeld, in Samsung Galaxy fone na Instellings -> Toestelversorging, jy sal 'n RAM-aanwyser hier vind met inligting oor hoeveel spasie vry is en hoeveel beset is. Nadat jy op die kieslys geklik het, kan jy sien hoeveel geheue elke toepassing neem, en jy het ook die opsie om die geheue hier skoon te maak. Die RAM Plus-funksie is ook hier geleë. Die betekenis daarvan is dat dit 'n sekere aantal GB van die interne berging sal afbyt, wat dit vir virtuele geheue sal gebruik. Kan jy jou so iets voorstel op iOS?
Slimfone maak staat op RAM. Dit dien hulle om die bedryfstelsel te stoor, om toepassings te begin en ook om van hul data in die kas en buffergeheue te stoor. RAM moet dus so georganiseer en bestuur word dat toepassings glad kan loop, selfs al laat u dit op die agtergrond val en na 'n rukkie weer oopmaak.
Swift vs. Java
Maar wanneer jy 'n nuwe toepassing begin, moet jy vrye spasie in die geheue hê om dit te laai en te laat loop. Indien dit nie die geval is nie, moet die plek ontruim word. Die stelsel sal dus sekere lopende prosesse, soos toepassings wat reeds begin het, met geweld beëindig. Beide stelsels, dit wil sê Android en iOS, werk egter anders met RAM.
Die iOS-bedryfstelsel is in Swift geskryf, en iPhones hoef nie eintlik gebruikte geheue van geslote toepassings terug na die stelsel te herwin nie. Dit is te danke aan die manier waarop iOS gebou is, want Apple het volle beheer daaroor aangesien dit net op sy iPhones werk. Daarteenoor is Android in Java geskryf en word dit op baie toestelle gebruik, so dit moet meer universeel wees. Wanneer die toepassing beëindig word, word die spasie wat dit geneem het, teruggestuur na die bedryfstelsel.
Inheemse kode vs. JVM
Wanneer 'n ontwikkelaar 'n iOS-toepassing skryf, stel hulle dit direk saam in kode wat op die iPhone se verwerker kan loop. Hierdie kode word inheemse kode genoem omdat dit geen interpretasie of virtuele omgewing vereis om te loop nie. Android, aan die ander kant, is anders. Wanneer Java-kode saamgestel word, word dit omgeskakel na Java Bytecode-tussenkode, wat verwerker-onafhanklik is. Dit kan dus op verskillende verwerkers van verskillende vervaardigers werk. Dit het groot voordele vir kruisplatform-versoenbaarheid.
Daar is natuurlik ook 'n nadeel. Elke bedryfstelsel en verwerker kombinasie benodig 'n omgewing bekend as die Java Virtual Machine (JVM). Maar inheemse kode presteer beter as kode wat deur die JVM uitgevoer word, so die gebruik van die JVM verhoog eenvoudig die hoeveelheid RAM wat deur die toepassing gebruik word. Dus gebruik iOS-toepassings minder geheue, gemiddeld 40%. Dit is ook hoekom Apple nie sy iPhones met soveel RAM hoef toe te rus soos met Android-toestelle nie.
Ek is nie juis 'n kenner nie, maar ek sal my perspektief beskryf vanuit die perspektief van 'n gebruiker wat Android al 15 jaar gebruik en nou 2 maande in die iPhone 13 mini is. Op Android met 8 GB geheue (mees onlangs Samsung S21, Flip3) het ek gewoonlik na 'n sekere tyd teruggekeer na die voorheen bekendgestelde toepassing en dit was steeds in RAM gelaai, so dit het nie weer van voor af begin nie en ek kon glad optel waar ek opgehou het. Aan die ander kant, selfs met 8 GB geheue, het ek een keer per week alle toepassings “afgeskiet” om die RAM skoon te maak, want die stelsel het begin stadiger word met volle geheue. Ek het nie 'n probleem met stadiger op die iPhone nie, maar aan die ander kant moet ek sê dat wanneer ek byna identiese toepassings gebruik, inteendeel, gebeur dit gereeld met my dat wanneer ek terugkeer na 'n voorheen geloodsde toepassing, dit laai weer heeltemal en ek kan nie glad aangaan waar ek opgehou het nie .
Watter opsie is beter? Moeilik om te sê ... Om programme op Android dood te maak en RAM skoon te maak, is 'n kwessie van twee klikke. Om die hele toepassing weer op die iPhone te laai is nie so tydrowend nie, so dit maak nie soveel saak nie... Natuurlik sal dit ideaal wees om meer RAM op die iPhone te hê en multitasking soos op Android :-D
Shit, dis weer stupid. Vir een ding, Android is lanklaas in Java gedoen, dit is waarvoor Kotlin is. Vullisverwyderaar is in beheer van die geheue, wat die eenvoudigste in iOS is, wat selfs met sy nadele bestaan. Die hele ding is dat iOS programme doodmaak sodra jy dit van die skerm af haal. Dit maak geheue vry net soos op Linux wanneer jy kill pid van 'n proses tik. Dit is hoekom dit so lank neem om die blaaier oop te maak en terug te keer na die vorige werk. Hierdie artikel is 'n woordelike vertaling van 'n X jaar oue artikel deur 'n iOS-fanatikus met geen programmeringskennis nie. Ja, natuurlik, geheuebestuur is hoofsaaklik die verantwoordelikheid van die programmeerder, wat die toepassing doen. As hy daarop hoes, is daar 'n geheuelek in die wêreld en pqk jy kan X Gb geheue hê en dit is steeds nutteloos. En in 'n tyd wanneer baie toepassings net WebView is, is dit baie eenvoudig, want dit eet self wat dit kan. Die artikel is nonsens, gemors.
Android gebruik nie meer jvm nie, maar dvm. En daarby stel dit dit dan saam in 'n inheemse uitvoerbare
Java is nog steeds in Android.