Minneshantering, experiment och funderingar

Diskussion i 'Allmänt' startad av teddyjohan, 18 augusti 2010.

  1. teddyjohan

    teddyjohan Adult Droid Medlem

    Blev medlem:
    3 april 2010
    Inlägg:
    841
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag som många andra upplever att telefonen drar en hel del batteri och därtill, då jag har en X10 Mini med inte alltför mycket RAM, att den ibland blir ganska seg. Noterade några egenheter av en ren slump, måhända kanske mer relaterade till Sony Ericsson än Android, men detta är vad jag "upptäckte" idag.

    A) Telefonen har varit igång ett dygn. Det finns ca 20 MB, eller dryga 15%, ledigt RAM. Ett gäng applikationer körs (multi-tasking) i bakgrunden och därtill ett stort antal widgets. Noterar att alla widgets ligger på 10-12% per styck, ingen mer och ingen mindre.

    B) Startar om telefonen för att nolla allt som körs. Låter den ligga en stund för att ladda alla data. Kollar igen. Förutom widgets så ligger ett antal andra appar, t.ex. E-post, och Market, och puttrar. Dessa ligger på vardera drygt 15-20%. Widgets fortfarande 10-12%. Ledigt RAM fortfarande ca 15%.

    Till saken hör att e-post inte har någon som helst automatisk uppdateringsfunktion på X10 Mini. Det finns ingen som helst anledning för den appen att köras, vare sig som service i bakgrunden (den kan ju inte göra något) eller annat.

    C) Tar bort hälften av mina widgets. Ledigt minne 16%. Lägger till fem widgets med olika inställningar (Extended Controls, med olika knappval per widget). Dessa visas, givetvis, som en process. Processen tar 12% med en widget, och den tar 12% med fem widgets. Ledigt minne 16%.

    Denna konsistens känns svår att förklara om det inte är så att Android hela tiden tilldelar appar tillgängligt minne, men samtidigt är det ju inte så att någon app får mer minne, mer än möjligtvis någon procent eller MB per styck.

    Och varför körs en massa appar/services i bakgrunden som tar upp minne helt i onödan? Spelar det ingen större roll om man har en eller fem widgets om det är samma process?

    Mest blev jag bara förvirrad av detta men jag hoppas det finns någon där ute som har bra svar :)
     
  2. FlyBob

    FlyBob Senior Droid Medlem

    Blev medlem:
    5 juni 2009
    Inlägg:
    1.367
    Mottagna gillanden:
    30

    MINA ENHETER

    Ledigt minne = Slösat minne.

    Det är Linux, inte windows. Ju mer RAM som används destå bättre utnyttjat är det, ledigt RAM är bara slöseri på potentiell prestanda. Android är magi!
     
  3. Dockland

    Dockland Android Apprentice Hedersmedlem

    Blev medlem:
    1 juni 2010
    Inlägg:
    4.362
    Mottagna gillanden:
    848
    Operatör:
    Tele2, Telia
    Telefon:
    iPhone 14 Pro Max

    MINA ENHETER

    Operatör:
    Tele2, Telia
    Telefon:
    iPhone 14 Pro Max
    Telefon 2:
    iPhone 13 Pro Max
    Telefon 3:
    iPhone 11
    Platta:
    iPad Pro 12,9" gen 4 (2020)
    Övrigt:
    Apple Watch 7 & 8 - MAC M1 - AirPods Pro2 & Max - Apple TV
    Ord!
     
  4. JwK

    JwK Youth Droid Medlem

    Blev medlem:
    23 juli 2010
    Inlägg:
    102
    Mottagna gillanden:
    13
    Operatör:
    Tele2, Google Voice
    Telefon:
    Google Nexus 6

    MINA ENHETER

    Operatör:
    Tele2, Google Voice
    Telefon:
    Google Nexus 6
    Telefon 2:
    HTC One SV
    Telefon 3:
    Google Nexus 4
    Platta:
    Google Nexus 7
  5. teddyjohan

    teddyjohan Adult Droid Medlem

    Blev medlem:
    3 april 2010
    Inlägg:
    841
    Mottagna gillanden:
    0

    MINA ENHETER

    Om jag uppfattat det hela korrekt så gör nice att prioriteten blir ungefär lika mellan de snarlika processerna, vilket förklarar att mina widgets alla ligger på 10-12%! Det kan också förklara varför det inte blir någon större skillnad mellan en och fem widgets inom samma process. Men denna niceness gör ju endast och bara nytta om den distribuerar minnet så att de befintliga processerna ges högre prio när mer utrymme finns; inte om telefonen startar en massa processer som användaren inte startat för att fylla ut utrymmet. Observera att widgetarna alltjämt bara har 10-12%, oavsett om jag multitaskat eller ej efter boot.
     
  6. Skywriter

    Skywriter Professional Droid Medlem

    Blev medlem:
    22 september 2009
    Inlägg:
    2.433
    Mottagna gillanden:
    142

    MINA ENHETER

    Du har snubblat på hur Android är konstruerat. En app får så mycket minne den vill ha (så länge hårdvaran tillåter). Att vissa appar startar automatiskt efter en omstart beror på att de helt enkelt vill göra det.

    Android sköter all minnes- och processhantering åt dig. Den startar processer när dom behövs och när minnet börjar ta slut så frigör den minne genom att döda processer.

    När en service körs i bakgrunden har den med största sannolikhet en funktion och Android dödar inte en service i onödan. I första hand ryker appar som ligger vilande i bakgrunden och de som det var länge sen du använde dödas först.

    Du kan läsa mer om hur Android rankar processerna för att avgöra vilken som ska dödas först här Processes and lifecycles

    Det här är också varför task-killers är onödiga. Android vet bäst vad som kan och inte kan dödas.