OS X Mavericks snålar med strömmen
Med OS X Mavericks gör Apple en del radikala förändringar vad gäller fördelningen av den dyrbara strömmen i datorns batteri. Målet är att kraftigt förbättra batteritiden, och på många sätt är det en lyckad satsning även om företaget även måste få med sig tredjepartsutvecklarna för att få förändringarna att märkas maximalt.
Kortfattat kan man säga att den senaste versionen av #OS X i högre grad än tidigare fungerar som en resursfördelare som avgör vilka processer som får köras och när. Inspirationen och många av teknikerna kommer från IOS som alltid utövat en hård kontroll över vad appar tillåts göra och vilka processer som får köras i bakgrunden. En utvecklare för Iphone eller Ipad har redan från början behövt skriva sin app utifrån möjligheten att operativsystemet när som helst stänger av den för att frigöra resurser till en annan app eller spara på det begränsade batteriet.
Redan i OS X Lion infördes de första förändringarna i form av autosparande appar. När Mountain Lion kom 2012 fick operativsystemet tillåtelse att i bakgrunden avsluta processer som inte använts på ett tag. Nu med #Mavericks tas ännu några stora steg mot OS X som en pragmatisk resursfördelare. Mavericks innehåller ett antal nya API:er (Application Programming Interface) som utvecklare kan använda sig av för att få sina program att verka i denna strömsparande anda. Det finns nu också på bärbara datorer en plats under batteriikonen där appar som drar mycket ström visas – ett smidigt sätt för vanliga användare att se vilka program som är energitjuvar.
Hårdvaran
Efter att litiumjon-batteriet uppfanns har utvecklingen visserligen gett något högre kapacitet och längre hållbarhet, men i det stora hela har det inte hänt särskilt mycket med den batteriteknik som finns att tillgå. Apple har sedan några år gått över till ej löstagbara batterier i sina bärbara maskiner för att kunna formge batterierna på ett effektivare sätt och inte slösa utrymme på låsmekanismer och plastskydd. Varje millimeter räknas när det handlar om att maximera battericellernas storlek.
Vad som däremot har förändrats i en revolutionerande takt är hur kretsar med processorer och grafikprocessor blivit bättre på att hushålla med strömmen. Dels har kretsarna i stadig takt blivit mindre, vilket ger lägre strömförbrukning. Intels senaste generation, Haswell, tillverkas med så kallad 22 nanometers teknik, vilket gör att man kan mäta strömförbrukningen i nanojoule per hanterad instruktion. Samtidigt har fler och fler komponenter samlats på en och samma krets, vilket gör hanteringen effektivare när flera processorkärnor och grafikprocessorn samsas på ett mindre utrymme.
Men framförallt har moderna arkitekturer blivit bättre på att inte förbruka ström när de inte är aktiva. Kretsar som Haswell kan stänga av de komponenter som inte används – om datorn utför en enklare operation behöver inte mer än en processorkärna vara igång, och då kan grafikprocessorn och den andra processorn hållas i vänteläge. Helt i vila förbrukar en processor ungefär 0,4 watt, men under normal användning närmare 15 watt. Vid hård användning med Turbo Boost går energiförbrukningen upp till hela 25 watt så det finns en mycket stor spännvidd, och ju mer processorn får vara i vila desto bättre.
Faktum är att i en modern dator befinner sig en processor oftare i viloläge än inte, då en så stor del av tiden är väntan på instruktioner från någon annan del av datorn eller från användaren själv. Arkitekturer som Ivy Bridge och Haswell är alltså designade för att låta sina komponenter arbeta snabbt och hårt när det behövs, men sedan så ofta som möjligt gå tillbaka till sitt strömspararläge.
Så långt allt väl. Problemet med processorer som ständigt startar och stängs ner är dock att förändringen inte är ögonblicklig. En processor behöver mellan 10 och 15 mikrosekunder på sig för att starta upp, och under den tiden används energi som inte kan nyttjas till något annat. Om processorns aktivitet betraktas över en millisekund syns det att den oftast startar flera gånger, och för varje gång går det åt värdefull ström. Ju mer processorn kan samla sina aktiviteter, och ju längre pauser det är mellan uppstarterna, desto mer energieffektiv blir den. Det är här som OS X Mavericks kommer in i bilden.
Mjukvaran
OS X Mavericks är designad för att i möjligaste mån samla de aktiviteter som ska utföras i stora block, så att processorn kan vara i viloläge så länge som möjligt. Systemet har fått befogenhet att i viss mån fördröja en del anrop till processorn, så att de kan utföras tillsammans med andra, vilket gör att att antalet uppstartssekvenser minimeras.
Det kan därför spontant låta som att Mavericks gör datorn långsammare, i och med att vissa operationer inte utförs så tidigt som de skulle kunna, utan sparas till senare. Dock handlar det om såpass korta tidsförlopp – mikrosekunder – att en människa inte kan avgöra skillnaden. Dessutom sker operationer som användaren begär, till exempel att öppna en app eller ladda en webbsida, alltid så snabbt som det bara är möjligt. Så faktum är att Mavericks hushållande med resurser ger hela datorn ett snabbare intryck, eftersom det användaren vill göra har en tydlig prioritet, så att systemet mer sällan är upptaget med bakgrundsaktiviteter.
OS X Mavericks har ett antal strategier för att undvika energikrävande aktiviteter och samla dem i klump, varav de främsta är App Nap, Centralized Task Scheduling, Power Saver i Safari och förmågan att komprimera data i primärminnet.
App Nap
App Nap är en teknik som används när flera appar är igång samtidigt. Normalt används ju bara ett program åt gången, och arbetstiden ägnas åt att växla mellan de olika apparna. OS X Mavericks kan med App Nap avgöra vilka appar som för tillfället ligger dolt bakom andra fönster, exempelvis en webbsida som ligger gömd bakom ett ordbehandlingsprogram.
Om appen i bakgrunden inte gör något viktigt, som att ladda hem en fil eller spelar upp musik, kommer systemet att sänka hastigheten för den, så att den arbetar långsammare och därmed spar energi. Dessa lågprioriterade appar får också sina tidsbestämda processoranrop – så kallade timers – omflyttade för att samla aktiviteter som ska behandlas av processorn. Så fort appen hamnar i förgrunden igen tilldelas den full hastighet. Hur mycket batteri detta sparar beror naturligtvis på många olika faktorer, men enligt Apple kan processorns strömförbrukning sänkas med upp till 23 procent tack vare appar som stöder App Nap. En förutsättning är då att en app också uppdateras med nya API för att använda sig av tekniken – genom att systemet då kan berätta för appen om den ligger synlig eller dold, och så att appen kan meddela systemet hur och vilka resurser den vill använda.
Centralized Task Scheduling
Det finns massor av saker operativsystemet utför som inte är en brådskande aktivitet, till exempel att leta efter uppdateringar eller Spotlight-indexera hårddisken. Med Centralized Task Scheduling försöker Mavericks schemalägga sådana aktiviteter till en lämplig tidpunkt ur energisynpunkt. En energikrävande process kan exempelvis sparas tills dess att datorn är ansluten till en laddare. Andra aktiviter som kommer att ta en del processorkraft i anspråk placeras till en tid när datorn inte använts på ett tag, det vill säga när användaren inte är närvarande.
Här finns också nya API:er att tillgå, så att ett program kan berätta för systemet vilka av dess processer som kan schemaläggas till en annan tidpunkt, och hur långt uppehållet kan vara.
Power Saver i Safari
Ett av de mest använda och viktigaste programmen i en dator idag är webläsaren. Apple har därför i Safari byggt in flera funktioner för att spara energi och förlänga batteritiden. Dels fungerar flikar i Safari nu enligt samma princip som App Nap, det vill säga de flikar som för tillfället inte visas hanteras med reducerad hastighet. Men Safari innehåller också en ny funktion som kallas Power Saver.
Det är väl känt att plugins som Flash kraftigt kan försämra batteritiden på en bärbar dator på grund av att de använder processorn i så hög grad. Apple levererar därför inte längre Flash förinstallerat på sina datorer, men många användare har ändå laddat ner och installerat det eftersom så många webbsidor använder Flash.
Power Saver känner helt enkelt av energikrävande plugins på en webbsida – till exempel en film eller animation – och låter bli att ladda den. Istället visas en förhandsvisning i form av en stillbild och en liten Power Saver-skylt. Först när användaren klickar på den laddas hela innehållet. Safari försöker också avgöra vilka plugin som är innehåll användaren vill se genom att det bara är de som är placerade i periferin som inte laddas – det vill säga det som troligtvis är annonser och annan reklam. En video i mitten av sidan laddas fortfarande som vanligt.
Komprimerat minne
Efter processor och grafikkort är det att läsa och skriva till hårddisken som drar mest ström, så ju mindre datorn behöver göra det desto bättre. Detta gäller framförallt vanliga hårddiskar med roterande skiva, men även SSD-diskar drar mycket mer ström än det inbyggda primärminnet. Ett bra sätt att spara ström och få bättre prestanda har därför alltid varit att ha så mycket primärminne som möjligt i datorn.
Apple har i Mavericks en metod för att bättre utnyttja det primärminne som finns, i och med att systemet nu kan komprimera informationen som läggs i minnet. På detta sätt utnyttjas det begränsade primärminnet bättre, så att data mer sällan måste skrivas över på det långsammare hårddiskminnet. Mavericks känner automatiskt av när primärminnet börjar bli fullt, och komprimerar då data från de appar som inte är aktiva, så att appar som används får mer minne tillgängligt.
Avslutning
Trots de många systemfunktioner som Apple har byggt in i OS X Mavericks
krävs det en Mac av modernare slag för att riktigt få njuta av den längre batteritiden. Ivy Bridge eller den senaste arkitekturen Haswell, ger störst effekt då systemet är så pass beroende av hur dessa kan stänga av och på sina olika komponenter, samt att processorkärnorna blivit så energisnåla i vila. Resultatet syns tydligt i hur Apples senaste bärbara datorer kan stoltsera med en batteritid på upp till 12 timmar.
Men även med en äldre Mac kommer det troligtvis märkas en skillnad bara genom att uppdatera till Mavericks tack vare funktioner som App Nap och Power Saver. En viktig del av ekvationen är så klart att tredjepartsutvecklare också uppdaterar sina appar så att de kan utnyttja dessa funktioner. En app som ständigt ligger i bakgrunden och begär systemresurser från processor och grafikkort kommer snabbt att tömma batteriet.
För att underlätta för utvecklare har det byggts in nya verktyg i utvecklingsprogrammet Xcode för att mäta en apps energiförbrukning. En annan del är de nya API:erna, som ger en app möjlighet att delta i Mavericks strömsparande åtgärder, som App Nap och Centralized Task Scheduling. Men för att ytterligare uppmuntra utvecklare att skriva så energisnåla appar som möjligt – eller kanske snarare för att avskräcka dem från hög strömförbrukning – har Apple också lagt till en funktion under batteriikonen som tydligt visar appar som har använt sig av mycket energi nyligen.
Genom att klicka på appen flyttas man direkt till Aktivitetskontrollen. Därifrån går det enkelt att tvångsavsluta den berörda appen. Många appar använder ju mycket resurser av nödvändighet, till exempel tunga program som Photoshop och Handbrake, men de flesta kan med användande av nya API:s och smart design minska sin resursförbrukning.
Det är inte någon särskilt bra reklam för en applikation att hängas ut som en energitjuv, så kanske kan denna inte särskilt smickrande uppmärksamhet få utvecklarna att spela med i kampen om batteriets livslängd. Vad funktionen däremot gör tydligt är att visa för användaren sambandet mellan vad en dator gör, och hur länge batteriet håller.