Blir Android 2.2 snabbare än version 2.1?

Diskussion i 'Allmänt' startad av donaldduck, 11 jul 2010.

  1. donaldduck

    donaldduck Teen Droid Medlem

    Blev medlem:
    11 jul 2010
    Inlägg:
    384
    Mottagna gillanden:
    65

    MINA ENHETER

    Svaret är antagligen ja, det blir dock inte alltid så! Vi kan se tester där Android 2.2 är ca två gånger så snabb som version 2.1. Detta beror nog huvudsakligen på att man använde JIT, Just In Time compilation. Skall nedan försöka beskriva på ett enkelt sätt vad detta innebär:

    Program som körs i en dator måste brytas ner till maskinkod som består av ettor- och nollor. Program som skall köras laddas normalt i ett RAM-minne. Det är ett minne där man kan både läsa och skriva snabbt. RAM står för Random Access Memory och innebär att man kan hoppa till olika delar av minnet direkt utan fördröjning. Programmen vi installerat, men som inte laddats för att köras, lagras dock normalt i ett annat minne ett minne som normalt är betydligt långsammare.

    Det finns knappast någon som skriver program genom att skriva ettor- och nollor som man sedan laddar in, vi människor passar inte för detta. Vi använder normalt vad som kallas högnivåspråk, man kan läsa ut ungefär vad en instruktion gör. Exempel på högnivåspråk är Java, C, C++, C#. Formatet man distribuerar program i kan dock skilja. Traditionellt skriver man kanske ett program i C++ men kompilerar det till något som är mycket nära maskinkod och distribuerar sedan denna kompilerade variant. Programmen blir betydligt större när de är kompilerade. C# är ett skriptspråk där man distribuerar programmen i en form nära högnivåspråket. Ett program som är på 5 kilobytes i C# kan mycket väl bli på över 100 kilobytes om man kompilerar det i C++. OK, då kan det ingå vissa biblioteksrutiner. Programmen blir dock betydligt större när man kompilerar dem.

    Android 2.1 är ett skript språk där man sparar programmen i högnivåspråk. De bryts ned till maskinkod först när de körs. Har fördelar och spelar ofta ingen roll. När ett program kör samma slinga med kod flera gånger så bryts dock högnivåkoden ner till maskinkod varje gång den körs. Har man program som har många och långa slingor (loop) så innebär det då att processorn lägger ner majoriteten av tiden på att bryta ner programmet till maskinkod. Dessutom bryter den ned samma kod gång på gång. Processorn jobbar alltså majoriteten av tiden med annat än att utföra de instruktioner programmeraren ville att den skulle syssla med.

    Med Android 2.2 får vi JIT. Man börjar med att bryta ned högnivåspråket till något som är mycket nära maskinkod. Dessutom sparar man denna nedbrutna kod så att man inte skall behöva göra om jobbet varje gång. Man kan på detta sätt få anmärkningsvärda förbättringar i prestanda för program som kör samma kod många gånger. Det är detta vi ser resultatet av när man kör tester på halva tiden med Android 2.2 jämfört med 2.1.

    När man kör programmet första gången skall det dock brytas ned till något som är nära maskinkod. Detta tar tid och många program kommer därför att bli långsammare än förut. Detta är dock att spetsa till det, vi kommer knappast att märka om ett program tar 70 millisekunder i stället för 40. En större nackdel är dock att det går åt betydligt mer RAM-minne genom att programmen blir större genom att det är mer nedbrutna. I variant 2.1 ligger program kvar i RAM och slängs bara ut när minnet behövs för andra program. Detta kommer att ske oftare med 2.2. Varje gång som sedan ett ”gammalt” program skall laddas igen måste det brytas ned igen med den extra tid det tar. Det kommer dock att gå åt mer RAM och av den anledningen kan man antagligen inte använda Android 2.2 i alltför gamla modeller som inte har tillräckligt med RAM.

    Sammanlagt kommer vi dock antagligen att uppleva Android 2.2 som snabbare än 2.1. Det finns dock en möjlighet till avsevärda förbättringar i ett annat avseende, effektförbrukningen. Jag har sett en navigator där processorn hela tiden snurrar med 66 % av full kapacitet på en HTC Desire med Android 2.1. Den blir varm och drar effekt därefter. En navigator är ett typiskt program där man säkert har en massa loopar. Här skulle man då kunna uppnå väsentligt mindre effektförbrukning. Detta då om programmet är gjort på ett vettigt sätt. Man kan göra program som hela tiden ligger och snurrar i en loop för att kolla om något händer. I ett sådant fall skulle det inte hjälpa. Huvudsaken är dock att möjligheten finns. Att få batterierna att räcka längre är mycket väsentligt och skulle nog kunna vara en av de största anledningarna för tillverkarna att försöka få in Android 2.2 i så många modeller som det går.
     
  2. Vandergrift

    Vandergrift Adult Droid Medlem

    Blev medlem:
    10 aug 2009
    Inlägg:
    712
    Mottagna gillanden:
    6

    MINA ENHETER

    Konstigaste första inlägget jag någonsin sett, men välkommen till Swedroid I guess :)
     
  3. Thiesen

    Thiesen Senior Droid Medlem

    Blev medlem:
    26 aug 2009
    Inlägg:
    1 052
    Mottagna gillanden:
    26

    MINA ENHETER

    Det d'r är inte det minsta konstigt ifall man kan det minsta om programmering. Jag är ingen programmerare men jag har lätt för att hantera datorer... :-)

    Således ett MYCKET bra inlägg om fördelarna och även nackdelarna med JIT-kompilering.
     
  4. paffare

    paffare Kid Droid Medlem

    Blev medlem:
    13 sept 2009
    Inlägg:
    81
    Mottagna gillanden:
    1

    MINA ENHETER

    Det konstiga i det här fallet är väl att inlägget inte direkt öppnade för nån diskussion.
     
  5. MiXiE

    MiXiE Kid Droid Medlem

    Blev medlem:
    8 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    1

    MINA ENHETER

  6. ef98dpa

    ef98dpa Teen Droid Medlem

    Blev medlem:
    20 apr 2010
    Inlägg:
    483
    Mottagna gillanden:
    53

    MINA ENHETER

    Som sagt, mycket konstigt. Dock en utmärkt artikel!
     
  7. yayayay

    yayayay Senior Droid Medlem

    Blev medlem:
    27 okt 2009
    Inlägg:
    1 080
    Mottagna gillanden:
    4

    MINA ENHETER

    Angående brist med RAM-utrymme i och med 2.2 så får man ju samtidigt en möjlighet att spara applikationer på sitt minneskort. Så det är ju inte direkt något problem.
     
  8. FlyBob

    FlyBob Senior Droid Medlem

    Blev medlem:
    5 jun 2009
    Inlägg:
    1 367
    Mottagna gillanden:
    30

    MINA ENHETER

    RAM != ROM

    Gör ingen skillnad att du kan spara appar på SD. RAM är arbetsminne, inte lagringsutrymme. Det öppnar bara möjligheten att installera ännu fler appar.

    Varför åh varför skall det vara så svårt att installera mer RAM i en mobiltelefon? Helre 400MHz och 1Gb RAM än 1.5GHz som tar slut på minne stup i kvarten och måste starta om processer på nytt!
     
  9. donaldduck

    donaldduck Teen Droid Medlem

    Blev medlem:
    11 jul 2010
    Inlägg:
    384
    Mottagna gillanden:
    65

    MINA ENHETER

    Anledning till mitt inlägg är hur jag personligen ser detta forum; som en källa till kunskap för att förstå bättre/lösa problem. Har haft stor nytta av det som finns och ville betala tillbaks lite med vad jag hoppas kan vara av intresse för en del.

    De JIT som finns är normalt aldrig ”rena” JIT lösningar. Man kör ofta en blandning mellan förkopilerade program och JIT. Vet inte hur man löst det i Android 2.2. Ids ni läsa finns mer här:

    http://en.wikipedia.org/wiki/Just-in-time_compilation

    Väsentligt är hur processorn fungerar i moderna smartphones. På länken nedan en relativt sett ovanligt enkel artikel om detta. (Kräver dock fortfarande en del förkunskap om man skall ha nytta av den).

    http://www.anandtech.com/show/2798/2

    Som påpekats i tidigare kommentarer installeras inte applikationerna i RAM, om inte annat därför att de skulle försvinna när vi stänger av telefonen. I specen för HTC Desire står det apropå minne:

    ROM: 512 MB
    RAM: 576 MB

    Skulle gissa att det de kallar ROM inte är ROM utan det minne där delar av operativsystemet och våra applikationer installeras.
     
  10. Vandergrift

    Vandergrift Adult Droid Medlem

    Blev medlem:
    10 aug 2009
    Inlägg:
    712
    Mottagna gillanden:
    6

    MINA ENHETER

    Menade absolut inte att det var något fel på det du skrev. Utan mer bokstavligen, att det inte var den typ utav första post man brukar se :)
    Iaf, alltid trevligt med nya members på swedroid och framförallt utvecklare.

    donaldduck & moderatorer: Sånt här är jättebra att få upp i wikin
     
  11. FlyBob

    FlyBob Senior Droid Medlem

    Blev medlem:
    5 jun 2009
    Inlägg:
    1 367
    Mottagna gillanden:
    30

    MINA ENHETER

    ROM är väl egentligen minnet där applikationer lagras, så rent tekniskt är det ju inget ROM då man kan installera program och skriva inställningar där på löpande band.
     
  12. Delta

    Delta Infant Droid Medlem

    Blev medlem:
    15 jun 2010
    Inlägg:
    12
    Mottagna gillanden:
    0

    MINA ENHETER

    Bra men avancerad artikel :)
     
  13. yayayay

    yayayay Senior Droid Medlem

    Blev medlem:
    27 okt 2009
    Inlägg:
    1 080
    Mottagna gillanden:
    4

    MINA ENHETER

    Naturligtvis... vilken tabbe. :P
     
  14. diordnA

    diordnA Youth Droid Medlem

    Blev medlem:
    3 jun 2010
    Inlägg:
    116
    Mottagna gillanden:
    1

    MINA ENHETER

    Grymt första inlägg! Fyll gärna på med andra teknikrelaterade inlägg i samma still, jag gillar nivån du skriver på, precis lagom nördigt för att man ska kunna ta till sig det :)
     
  15. Dockland

    Dockland Android Apprentice Hedersmedlem

    Blev medlem:
    1 jun 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
    Bra artikel. Det där med batteriets livslängd. Det är väl bara fråga de som rootat och kör Froyo på sin lur vad skillnaden blev?
     
  16. Reconnnn

    Reconnnn Professional Droid Hedersmedlem

    Blev medlem:
    9 mar 2010
    Inlägg:
    2 809
    Mottagna gillanden:
    263

    MINA ENHETER

    Lysande artikel och välkommen till swedroid alltid roligt att se nya kunniga utvecklare på detta forum. Hoppas du kommer göra dina egna appar (om du inte redan har gjort det ) och hjälpa andra på forumet med deras. Ser fram emot vad du kan åstadkomma för swedroid.
     
  17. PatrikS

    PatrikS Senior Droid Medlem

    Blev medlem:
    29 jun 2009
    Inlägg:
    1 123
    Mottagna gillanden:
    65

    MINA ENHETER

    Bra artikel men varken java eller c# är skriptspråk (eller skript språk).

    De är s.k. "managed languages" med garbage collector och ett mellanlager som tolkar koden till mer maskinnära kod.

    Ecmascript är ett skriptspråk däremot. (javascript) eller perl.