Het is een veelgehoord kritiekpunt: hoewel de iPhone ieder jaar een hardware-upgrade krijgt, is Apple vrij behoudend als het gaat om RAM. De iPhone 6 heeft bijvoorbeeld 1GB geheugen, terwijl concurrerende Android-smartphones meerdere gigabytes tot hun beschikking hebben. Daar zit een reden achter, aldus een expert op Quora.
Op Quora werd gevraagd waarom de iPhone met 1GB RAM genoeg geheugen heeft om te concurreren met Android-telefoons met 2GB of meer. Inmiddels zijn er al flink wat antwoorden gegeven, maar Glyn Williams lijkt de duidelijkste uitleg te hebben. Het heeft allemaal te maken met hoe Android het geheugen gebruikt.
Veel Android-apps gebruiken Java, waarbij RAM wordt gebruikt voor garbage collection. Bij dit proces wordt geheugen vrijgegeven en opnieuw gebruikt, zodra het nodig is. Dit proces maakt de smartphones vrij snel, maar het werkt vooral goed al ze relatief veel geheugen hebben. Zodra een groot deel van je geheugen in gebruik is, wordt de telefoon langzaam. Daarom moeten Android-telefoons meer RAM tot hun beschikking hebben. iPhone-apps gebruiken geen Java, waardoor ze ook geen extra RAM voor dit speciale proces nodig hebben.
Williams lijkt het bij het rechte eind te hebben. Zijn uitleg heeft namelijk een duim omhoog gekregen van een aantal prominente personen, waaronder voormalig Google-medewerker Kevin X Chang en Google Glass-productmanager Jeff Harris. Apple gebruikt voor het vrijmaken van geheugen een andere methode genaamd automatic reference counting, waarmee ook geheugen wordt vrijgemaakt. Een ontwikkelaar op Stack Overflow beschrijft het verschil als volgt:
Een programma met garbage collection zal over het algemeen meer geheugen gebruiken dan een programma zonder deze methode. Hierdoor wordt een app aanzienlijk langzamer zodra het geheugen wordt vrijgemaakt. Bij automatic reference counting wordt het geheugen gescand tijdens het compile-proces en vrijgemaakt zodra het beschikbaar is. Hierbij moeten de referenties naar objecten echter constant worden bijgewerkt en wacht een app niet tot een vast moment om geheugen vrij te maken.
Apple heeft er volgens Williams baat bij om de hoeveelheid RAM in een iPhone laag te houden. Meer RAM vereist namelijk ook meer stroom, waardoor je iPhone-batterij sneller leegraakt. Dat hield Apple overigens niet tegen bij het upgraden van de hoeveelheid RAM in de iPad. Sinds de iPad Air 2 gebruikt Apple 2GB.
Via Cult of Mac.
Taalfout gezien of andere suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!
Welke reden het ook is, ik vind het knap vervelend dat in Safari openstaande tabs continu opnieuw moeten worden geladen. Als dat door het beperkte geheugen komt dan snap ik niet waarom Apple er niet 1 GB heeft bijgezet. Het heeft een directe impact op mijn gebruikerservaring.
Straks gaat m’n iPhone nog ratelen omdat hij de hele tijd geheugen aan het wappen is 😛
Ik ervaar de tabs inderdaad ook als vervelend. Maar wat ik nog veel vervelender vind is dat het regelmatig gebeurd wanneer ik spotify gebruik en tussendoor een filmpje kijk op facebook of in safari hij spotify afsluit. En ik dus opnieuw het te beluisteren nummer moet zoeken.
@Tim: Dan moet je gaan klagen bij de makers van de Spotify App
@petje: Nee, apple staat niet toe dat 3rd party apps op de achtergrond blijven draaien als er een andere app geopend wordt. Waarschijnlijk ook om geheugen te sparen.
Sinds ios8 worden zo goed als al mijn recente apps op de achtergrond afgesloten (Instagram, Coyote, Navigon etc.), zelfs wanneer mijn phone aan de oplader hangt.
Echt een zooitje.
Dus graag 2GB, en die kortere batterij duur neem ik er dan graag bij (voor zover dit nog slechter kan natuurlijk….)
OF breng eens een deftige iOS update uit Apple, ipv die kreupele iOS 8, gatver!!!!
Nog een reden voor de grote geheugenbehoefte van Android: Android is zelf voor het grootste deel in Java geprogrammeerd. Bij het opstarten wordt een Linux kernel geladen die gebruikt wordt om de Java VM op te starten, de rest gebeurt vrijwel uitsluitend in Java. En zo’n VM heeft ook wat geheugen nodig. Apple draait “native” dwz. zonder tussenliggende VM, wat dus geheugen spaart.
@Joost: Ja dat vind ik ook vervelend, en de iPad air 2 met 2GB heeft hier geen last van. Maar als het een merkbare invloed heeft op de batterij, heb ik veel liever zo.
@Rop: Onzin, navigatie gaat door, en ook 100 health apps verzamelen informatie op de achtergrond, spotify heeft zelf een Auto feature en scant alle muziek die hij hoort op een dag, ook vanuit je broekzak.
Spotify gebruikt zelf teveel garbage data tijdens het streamen waardood ook 2gb te weinig zou zijn, Dat de muziek niet doorgaat tijdens het multitasken ligt aan de app van Spotify en niet aan IOS.
@Alfróf ed: Al is dat volgens mij met de komst van ART in 4.4 nu verleden tijd (althans, mogelijkheid per app – neem ik aan).
Dat is natuurlijk geen reden om geen behoorlijke sessiemanagement in te bouwen. Dat je app moet sluiten, ok. Maar dat de app bij opnieuw opstarten dan niet meer weet dat je zojuist naar track x gezocht had is nergens voor nodig.
Ik vind dit een vreemd artikel.
Het artikel legt niet goed uit wat ‘Garbage collection’ is. Als je niet weet wat je in een artikel publiceert, zoek het dan even op, desnoods op Wikipedia.
Ja, Java maakt gebruik van garbage collection. De apps ontwikkelaar hoeft daarmee niet zelf het geheugen op te ruimen dat hij declareert.
Maar ik kan me niet voorstellen dat dit het argument is waarom een iPhone maar 1 GB nodig heeft. Want een iOS ontwikkelaar kan namelijk ook garbage collection toepassen in Objective-C 2.0 en Cocoa.
Garbage collection wordt dus toegepast in Android en iOS apps. De meeste 3GL en 4GL programmeertalen bieden garbage collection aan.
http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)#Availability
(Red.) Objective-C gebruikt ook Automatic Reference Counting, terwijl Java consequenter terugvalt op garbage collection. Ze maken beide geheugen vrij, maar bij garbage collection lijkt een grotere hoeveelheid RAM vereist – aldus de kenner die we op Quora aanhalen. Op Stack Overflow legt iemand dit uit. Ik zal het toevoegen aan het artikel.
Wacht maar rustig 10 maandjes, de S versie van de iPhone 6 en 6 Plus zullen een sterkere behuizing krijgen en betere hardware, ook meer RAM. Altijd voor de S versie gaan!
@Andre: Precies wat ik wilde zeggen 🙂
Bij mij draaien gewoon de recente apps op de achtergrond ook wanneer deze aan lader hangt en ook met iOS 8.1.
Bij mij ( ipad mini) gaat spotify wel gewoon door met muziek bij bijvoorbeeld clash of clans alleen als ik ander video aan doe stopt die.
Ik weet niet hoe Apple het doet.., maar ik heb nog nooit een tekort aan ram geheugen gehad op de iPhone 6.
Het mag dan wel een expert zijn, hij vertelt gewoon onzin.
Android is net als Windows, waar iOS een mobiele systeem is wil Android meer een normaal en veelzijdig OS zijn, Android heeft ook veel meer processen die moeten starten, zie het als Windows vs OSX, die laatste kan ook beter met RAM omgaan door integratie met een beperktere aantal hardware, terwijl Windows en ook Android beide veel meer soorten hardware moeten ondersteunen.
Verder zijn de apps vaak complexer op Android, niet alleen omdat ze meer toestellen moeten ondersteunen en dat sommige devlopers lui zij, maar ook omdat Android apps vaak meer kunnen (wat niet altijd even goed is qua vage permissies).
Verder gebruikt Android nu nog dalvik dat inderdaad Java gebaseerd is, echter vanaf kitkat (4.4.x) is er ART en dat is niet Java gebaseerd, ART gaat ook beter met apps en RAM om, dus het kan hetzelfde met minder RAM, echter zoals ik al zei, complexe apps, luie devs en ga zo door zorgen ervoor dat de apps op Android alsnog meer RAM nodig hebben.
Vuistregel is dat stock Android zonder skins (dus custom ROM of een stock Android op Nexus telefoon) ruim voldoende hebben aan 1 á 2GB RAM, met skin meer maar dat is de schuld van de fabrikant en niet van Android.
Verder, iPad Air 2 heeft nu ook meer RAM, dit niet zonder reden want naast luie devs die apps voor Android maken zijn er ook devs die gebruik maken van die extra RAM, op iOS kan dat niet door 1GB, met 2GB kom je al een stuk verder en zijn de mogelijkheden veel groter.
En voor dit hoef je geen expert te zijn, maar gewoon iemand die beide systemen met plezier gebruikt (Android op Nexus 4 en iOS op iPad).
Bij 64bits moet de geheugen dubbel zijn toch?
Duim omhoog voor Apple!
Middenvinger omhoog voor Apple ! 1 gb is me net te kort ..
@Veronica: Hij heeft wel gelijk over de meerdere type als het over stock apps gaat, maar een luie app ontwikkelaars gebruikt misschien toch de “garbage” manier waardoor er zoveel ram kan worden gebruikt dat je inderdaad te kort komt (Ik kon zelf niet meer chromecasten met mijn ipad mini(1gb) en met mijn Nexus 6(3gb) ging het hartstikke vlot)