venerdì 24 ottobre 2008

B for Battery: prefazione.

La capacita' di Vista nell'utilizzare al meglio la batteria dei laptop e' sempre stato un argomento spinoso.
Fin dall'uscita di Vista si e' letto che il nuovo OS di Microsoft consumasse la batteria piu' velocemente di XP a causa della sua "pesantezza".

Chiaramente la "pesantezza" e' un concetto del tutto qualitativo e per nulla quantitativo e quindi e' piuttosto azzardato fare affermazioni sull'effettivo uso della batteria fatto da Vista senza corroborare il tutto con dati numerici significativi.

Prima di addentrarci nel dettaglio di come Vista sia o no efficiente nell'uso della batteria cerchiamo insieme di capire meglio quali siano le variabili in gioco.

Il consumo energetico complessivo e' determinato dalla somma dei consumi dei vari componenti. Ogni componente ha consumi che dipendono da diversi parametri.
Ad esempio il display puo' essere settato a diversi valori di luminosita' che hanno ovviamente diversi valori di consumo. Per fortuna (fortuna ai fini della nostra valutazione) gli LCD hanno un consumo costante per un determinato valore di luminosita' e non dipende dai colori visualizzati.
Una schermata interamente bianca consuma quanto una interamente nera o di qualunque altro colore. Questo ad esempio non e' vero sui display al plasma usati per le TV dove il consumo cambia anche di molto a seconda del colore visualizzato.

Le misurazioni che andro' a fare sono tutte caratterizzate dal mantenere costante la luminosita' del display durante tutto lo svolgimento di un singolo test, in questo modo la % di consumo di un display si puo' considerare un fattore del tutto indipendente dal sistema operativo usato.

Oltre al display i consumi sono determinati dalla CPU, dalla scheda madre, dall'hard disk, dalla RAM, dal lettore DVD e dai moduli di rete (WiFi e BT, la connessione cavo ethernet nei miei test non la uso).

Assumiamo che il consumo della scheda madre e della RAM siano anch'essi pressapoco indipendenti dall'OS usato o che la variazione % sia trascurabile.

Restano CPU, hard disk, DVD, WiFi e BT.

Determinare se un OS fa un buon uso di queste componenti non e' chiaramente facile, come non e' facile determinare la % di contributo di ciascuna di queste componenti nel calcolo complessivo dei consumi.

Tramite una serie di test focalizzati di volta in volta su varie componenti provero' ad isolare dei dati che permettano di fare valutazioni il piu' possibile oggettive sui consumi.

In tutto questo pero' c'e' un fattore che spesso si dimentica: il firmware.
Sui PC con windows il firmware e' rappresentato dal BIOS, che altro non e' che quello strato software che fa da intermediario tra il sistema operativo e l'hardware.

Che ruolo gioca il BIOS nel contesto del consumo energetico?
Dalla mia esperienza con il portatile Dell direi che gioca un ruolo non da poco.

Solo aggiornando il BIOS l'autonomia del Dell e' incrementata di circa il 25%, un valore non certo trascurabile.

L'hardware attuale dei portatili permette tutta una serie di ottimizzazioni da parte del software al fine di massimizzare l'uso della batteria.
Ad esempio le CPU possono essere fatte lavorare a pieno regime, a meta' regime oppure a un regime che varia in base al carico. L'hard disk puo' essere messo in stato di riposo e via dicendo.

Quello che viene naturale chiedersi e' quanto incidano le ottimizzazioni di un sistema operativo sul risparmio energetico e di conseguenza sulla durata della batteria.

A leggere questo articolo di AnandTech sul nuovo MacBook Pro in alluminio si direbbe che il sistema operativo gioca un ruolo fondamentale e che il margine di rispamio/speco e' enorme.

Prendiamo uno dei dati che ritengo piu' significativi tra le misurazioni fatte da AnandTech: lo stesso computer sotto Leopard riproduce un DVD ininterrottamente per 3 ore e 7 minuti, mentre sotto Vista la durata e' meno della meta', ovvero 1 ora e 30 minuti.

La differenza e' davvero enorme e sembrerebbe che la colpa di questa differenza sia completamente imputabile al sistema operativo. Ma e' davvero cosi'?

Non credo si possa dare una risposta definitiva basandosi solo su questo dato e infatti l'articolo di AnandTech dice (giustamente) che "Figuring out why OS X seems to be better for battery life is nearly impossible" (Capire perche' OS X sembri migliore per la durata della batteria e' praticamente impossibile).

Pero' credo anche che effettuando alcuni test si possa per lo meno raccogliere ulteriori dati utili a comprendere meglio le variabili in gioco e se non arrivare ad una risposta definitiva per lo meno fare un po' di chiarezza sulla questione.

Per questo da un paio di giorni ho iniziato a fare una serie di test usando il MacBook. I test avvengono sia su Vista avviato tramite Bootcamp che su Leopard.

La durata di ogni test varia tra le 2 ore e le 4 ore piu' il tempo per riportare la carica della batteria al 100%, quindi come si puo' facilmente immaginare ci vorra' parecchio tempo per concludere tutti i test che sto effettuando, ma posso preannunciare che ci sono gia' risultati "interessanti" oltre a "scoperte" del tutto inaspettate e decisamente "strane".

11 commenti:

  1. E’ possibile che Vista utilizzi più “intensamente” l’hardware?
    Si è possibile. Ma le ragioni di una durata inferiore della batteria potrebbero essere anche altre.
    L’articolo non da’ risposte al riguardo, si limita a segnalare un sintomo, come fai notare.
    E se si scoprisse un bug nel firmware che, casualmente, si manifesta solo con s/o non MacOSX?
    E quale ruolo gioca Bootcamp in questo?
    E se Vista eseguito con Bootcamp non fosse in grado di “pilotare” correttamente lo speedstep della CPU o forzasse inutilmente attiva l’accelerazione 3D anche quando non necessaria?
    Intanto che aspettiamo conferme sul sintomo, sarebbe il caso di iniziare a cercare di capirne le motivazioni.
    Speriamo qulcuno ci illumini.

    RispondiElimina
  2. Esatto, hai riassunto tutte le domande che e' lecito porsi.
    Ti posso anticipare che i miei test servono a dare in parte risposta a queste domande nel senso che sul mio MacBook pare che il comportamento di Vista sia meno tragico che sul nuovo modello.

    Ora se su due modelli di Mac si hanno prestazioni differenti per quanto riguarda Vista allora sorge spontaneo il dubbio che la colpa possa essere imputabile a un componente esterno a Vista.

    Gia' il prossimo post svelera' una sorpresa inaspettata... e che fa venire sospetti sulla buona fede di Apple ;-)

    Tra l'altro sto meditando di installare Ubuntu 8.10 appena uscira' per avere un confronto ancora piu' completo.

    RispondiElimina
  3. Ho utilizzato Windows installato nativamente sul mio MacBook per qualche tempo e credo di essermi fatto un'idea piuttosto verosimile.

    I risultati ottenuti da AnandTech mi sono subito parsi strani perché da quanto ricordo la situazione non era così tragica, se con Mac OS X ottenevo circa 5 h. di autonomia con Windows Vista e Windows XP ottenevo circa 4 h. e 30 min. di autonomia.

    Detto questo, ho notato che sia con Windows Vista che con Windows XP l'avvio dell'unica ventola era particolarmente strano, sembrava attiva quando non ce ne era bisogno oppure interveniva in ritardo rispetto a quanto accadeva con Mac OS X, inoltre lo spin-down del hard disk non era in uso. Credo che tutto questo dipenda dal BIOS, o meglio dall'emulazione del BIOS che EFI mette a disposizione, e da una pessima implementazione del ACPI.

    Sarebbe interessante capire se utilizzando Windows Vista x64 il sistema operativo può interagire direttamente con EFI (che è supportato) invece che con l'emulazione del BIOS (almeno sui Mac che supportano ufficialmente Windows Vista x64) e vedere se in caso di utilizzo di EFI i problemi di consumo anomalo sono risolti o meno.

    Attendo i tuoi test Enrico. ;)

    RispondiElimina
  4. "Gia' il prossimo post svelera' una sorpresa inaspettata... e che fa venire sospetti sulla buona fede di Apple ;-)"

    Caro Enrico G., a dire il vero mentre leggevo il tuo post mi è venuta in mente una "cattiveria" del genere, ma poi ho letto il tuo commento e almeno vedo che non sono il solo ad aver pensato a qualche "blocco" ai nastri di partenza... (un po' il caso di real player e windows 95 per capirci...).

    RispondiElimina
  5. Sirus,
    per installazione nativa intendi senza usare bootcamp?

    Nickelgreen,
    non e' che dico che per certo hanno fatto qualcosa in mala fede... diciamo che forse non si sono preoccupati di verificare una certa cosa ;-) (domani faccio il post a riguardo).

    RispondiElimina
  6. No Enrico, con installazione nativa intendo l'installazione attraverso Boot Camp. Boot Camp non fa nulla di speciale se non fare da front-end al sistema di partizionamento del disco, il suo ruolo finisce li. ;)

    RispondiElimina
  7. Quindi la compatibilita' BIOS viene fatta direttamente dal firmware.
    Dato che Boot Camp e' supportato solo su Leopard pensavo che la compatibilita' BIOS fosse fornita non direttamente dal firmware ma che Apple l'avesse inserita in Leopard per costringere l'utenza ad abbandonare Tiger.
    Di fatto quindi basta usare partizioni MBR invece che GPT per poter installare Windows visto che alla fine Boot Camp a parte offrire qualche utility di sistema non fa molto di piu'.
    E non serve quindi neppure avere Leopard installato sulla macchina per poter avere il dual boot (o volendo si puo' anche installare solo Windows o Linux senza alcuna installazione di OS X).

    RispondiElimina
  8. Il layer di compatibilità fu introdotto da Apple con un aggiornamento di EFI nel 2006. Credo che le operazioni che esegue Boot Camp siano due, la prima è effettuare il resize della partizione di Mac OS X (con una grossa limitazione, infatti non permette di effettuare il resize nel caso in cui disco sia stato precedentemente partizionato) la seconda è la sincronizzazione dello schema MBR con lo schema GPT (entrambi supportati da EFI).
    Fatto questo Windows interagisce direttamente con il firmware attraverso il layer di compatibilità; dalla bontà di questo layer dipende molto e temo che Apple non sia proprio attentissima a questo fatto.

    RispondiElimina
  9. Ieri ho installato Windows Vista in modo nativo (Boot Camp) sul mio MacBook in quanto non potevo più utilizzare una macchina virtuale.

    Questa mattina, per togliermi uno sfizio, ho voluto controllare come, e se, scalava la frequenza (ed il relativo voltaggio) del microprocessore. Il risultato è visibile nell'immagine linkata: http://img523.imageshack.us/my.php?image=vcoreff4.png

    Le ipotesi sono due, lo scaling del voltaggio non funziona come deve quando Windows è caricato, oppure CPU-Z, che funziona generalmente bene, non è in grado di rilevare i parametri di funzionamento quando Windows è caricato su una macchina che utilizza EFI ed un'emulazione del BIOS. Sinceramente spero di essere nel seconda ipotesi altrimenti la situazione è preoccupante.

    Spero che

    RispondiElimina
  10. Sirus,
    ho provato CPU-Z sul mio MacBook e i risultati sono decisamente sballati, ma non ho idea se sia PCU-Z che non e' compatibile con l'emulazione BIOS o se effettivamente ci sia qualcosa che non va nella gestione dello scaling.
    Ad esempio lanciando WMP per riprodurre un filmato le letture di CPU-Z iniziano a dare i numeri passando da circa 1200 MHz per poi andare a 1600 con punte a 2400 (che sono tutte soglie plausibili) ma lo switching avviene nonostante io abbia settato High Performance nel profilo di Vista oppure Power Saver.

    RispondiElimina
  11. In teoria i vari: Balanced, Power Saver e Performance non incidono sullo scaling della CPU, al più modificano le sogli di scaling.

    RispondiElimina