Batteritid med Froyo på N1?

Diskussion i 'Nexus One - Allmänt' startad av Misosoppa, 24 maj 2010.

  1. illicit

    illicit Kid Droid Medlem

    Blev medlem:
    12 dec 2009
    Inlägg:
    95
    Mottagna gillanden:
    0

    MINA ENHETER

    Batteritiden bör, rent teoretiskt, blir bättre då JIT:en innebär att färre klockcykler i processorn behövs eftersom koden inte behöver översättas från bytekod till nativekod hela tiden.
     
  2. urbanlarsson

    urbanlarsson Adult Droid Medlem

    Blev medlem:
    15 feb 2010
    Inlägg:
    686
    Mottagna gillanden:
    78

    MINA ENHETER

    Nja, så är det nog inte, JIT kompileraren används lika ofta, den kanske bara tar mindre tid på sig att göra jobbet. JITkompileraren bör väl rimligtvis köras varje gång en app eller process startar. Dock, om den är mer optimerad så används mindre CPU kraft vilket kanske leder till bättre batteritid. Jag tror iof inte att just denna funktion gör alltför stor skillnad, men det är bara min teori.

    Jag har märkt att JuiceDefender säger att den mer än dubblat batteritiden, innan FroYo låg jag på kanske 1,5ggr. Jag tycker också den har blivit mycket bättre. Den äts upp rätt snabbt när man kör telefonen som trådlös router men annars upplever jag den som avsevärt bättre.

    Ni som har problem med batteritiden bör installera JuiceDefender och sen ta bort alla widgets och se om det hjälper. Det är troligtvis en widget eller en bakgrundsprocess som drar ner batteritiden.
     
  3. Magnus Olsson

    Magnus Olsson Kid Droid Medlem

    Blev medlem:
    7 aug 2009
    Inlägg:
    89
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag tycker min här mycket bättre batteri med Froy, brukar ha 80% när jag kommer hem från jobbet o förr brukade de va typ 50%

    Edit: Juicedefender funkade riktigt kasst på min, telefon crasha o drog snarare mer batteri så den försvann snabbt :)
     
    Last edited: 27 maj 2010
  4. jonaz

    jonaz Adult Droid Medlem

    Blev medlem:
    4 feb 2010
    Inlägg:
    929
    Mottagna gillanden:
    17

    MINA ENHETER

    Jo JIT ökar batteritiden eftersom att CPUn beräknar MER på mindre tid. Du kan läsa om det i ett av googles bloginlägg som jag hitta här om dagen på deras android blog tror jag de var...
     
  5. urbanlarsson

    urbanlarsson Adult Droid Medlem

    Blev medlem:
    15 feb 2010
    Inlägg:
    686
    Mottagna gillanden:
    78

    MINA ENHETER

    Tyckte att det var ungefär det jag skrev, att JIT kompileraren används lika ofta men är effektivare när den används, vilket kanske leder till lite bättre batteritid.
     
  6. jonaz

    jonaz Adult Droid Medlem

    Blev medlem:
    4 feb 2010
    Inlägg:
    929
    Mottagna gillanden:
    17

    MINA ENHETER


    Vilket göra detta är korrekt altså:
     
  7. urbanlarsson

    urbanlarsson Adult Droid Medlem

    Blev medlem:
    15 feb 2010
    Inlägg:
    686
    Mottagna gillanden:
    78

    MINA ENHETER

    Där håller jag inte med dig, JITkompileraren behövs ju precis lika ofta, den är bara effektivare när den används.
    Det är inte samma sak som att kodöversättningen inte behövs göras lika ofta.

    I vilket fall, detta kanske inte är den viktigaste diskussionen på forumet :)
     
  8. illicit

    illicit Kid Droid Medlem

    Blev medlem:
    12 dec 2009
    Inlägg:
    95
    Mottagna gillanden:
    0

    MINA ENHETER

    Nej, JIT-kompilering görs ju mer sällan, man behöver ju bara JIT-kompilera ett stycke kod som körs ofta en gång (tills man stänger programmet).

    Egentligen blir det väl en ekvation där den kod man JIT-kompilerar måste köras tillräckligt många gånger för att spara in de extra cykler som krävs för att JIT-kompilera koden.
     
  9. urbanlarsson

    urbanlarsson Adult Droid Medlem

    Blev medlem:
    15 feb 2010
    Inlägg:
    686
    Mottagna gillanden:
    78

    MINA ENHETER

    Antingen är det jag eller du som har missförstått det här, och jag tänker inte säga att jag är helt säker men tycker att det bör fungera på följande sätt.

    Apparna kompileras till en pseudokod / bytekod, dvs inte opkoder som kan exekveras på processorn. Därför, för att kunna köra en app så behöver en JITkompilerare användas som är specifik för processorn som telefonen kör, som kompilerar om pseudokoden till processorspecifik kod så den kan exekveras.

    Med andra ord, koden _kan_ inte exekveras om den inte kompileras av JITkompileraren. Den enda man kan göra om JITkompileraren drar mycket CPUkraft (och därmed batteri) är att antingen spara mer i minnet så man slipper kompilera lika ofta eller att göra kompileringen mer effektivt och därmed minska CPUkraften som behövs för kompileringen.

    Nu vet jag inte om Google har ändrat på cachningen men när jag själv sitter och tittar på min telefon så känns det inte som det har ändrat sig märkbart, skulle snarare säga att jag har mer minne ledigt efter 2.2. Det dom dock har ändrat på är att JITkompileraren är mer optimerad och därmed behöver mindre CPU kraft för att kompilera pseudokoden.

    Det jag försöker säga är att det aldrig kan tas ett beslut där "telefonen" väljer att kompilera, eller inte kompilera, pseudokoden. Om en app ska köras och den inte är kompilerad till nativekod så måste en JITkompilera användas.

    Men som sagt, jag tänker inte säga att jag vet till 100% hur just android funkar, har aldrig lågnivåprogrammerat på den platformen eller läst särskilt mycket om JITkompileraren så ni får gärna rätta mig om ni tror jag har fel.
     
  10. boneP

    boneP Kid Droid Medlem

    Blev medlem:
    10 feb 2010
    Inlägg:
    94
    Mottagna gillanden:
    0
    Telefon:
    Samsung Galaxy S7

    MINA ENHETER

    Telefon:
    Samsung Galaxy S7
    Telefon 2:
    Htc One M7
    Telefon 3:
    Nexus One
    urban: skillnaden mot innan var just JustInTime, till skillnad från innan där den(nu gissar jag) fick tolka mer kod i större stötar

    typ: den måste alltid tolka koden men nu görs det on the fly och mkt snabbare

    processorn drar ju inte mer ström när JIT jobbar 100% än när kompilatorn de hade innan jobbade 100%, så med samma tolkningsjobb(nu borde den ju inte behöva tolka lika mkt "i onödan") så drar den alltid mindre ström

    ps: så har jag som inte är programmerare förstått saken iaf
     
  11. TheNano

    TheNano Senior Droid Medlem

    Blev medlem:
    8 jun 2009
    Inlägg:
    1 709
    Mottagna gillanden:
    0

    MINA ENHETER

    som man har redan sagt : widgets , vissa app som inte behövs och sedan kan man alltid underklocka om man nu har rootat, säg internetradio den behöver inte 1Ghz så om man klockar ner mobilen till 512MHZ flyter det fortfarande på bra med släckt skärm. min mobil säger att skärmen drar minst 50% av kraften
     
  12. illicit

    illicit Kid Droid Medlem

    Blev medlem:
    12 dec 2009
    Inlägg:
    95
    Mottagna gillanden:
    0

    MINA ENHETER

    Jo det stämmer. Antingen så kompileras en app till JIT-kod när den startas eller så körs den bara som Dalvik bytecode via runtimen (som att köra något på JVM utan JIT). Antar att alla program körs via JIT:en om man har den påslagen.

    Det är fortfarande Dalvik-bytekod som kompileras till opcodes via JIT:en, så tex 2.1 har ingen JIT alls utan där översätts bytekoden till opcodes hela tiden under körning.
     
  13. TheNano

    TheNano Senior Droid Medlem

    Blev medlem:
    8 jun 2009
    Inlägg:
    1 709
    Mottagna gillanden:
    0

    MINA ENHETER

    Vore det inte smartare att kompilera till opcode en gång och spara ner den till nästa gång programmet startar ?
     
  14. urbanlarsson

    urbanlarsson Adult Droid Medlem

    Blev medlem:
    15 feb 2010
    Inlägg:
    686
    Mottagna gillanden:
    78

    MINA ENHETER

    Ah, jag förstår, trodde att JITkompileraren alltid funnits men att den bara optimerats i 2.2. Detta förklarar dock hur det kan bli så stor prestandaförbättring, Tack :)