lunedì 30 dicembre 2013

Forza rendering GPU: meglio disattivare o attivare ’opzione? Vediamo...

Force-GPU-Rendering


 Android Ice Cream Sandwich, dopo la notizia, Google ha subito introdotto le Opzioni sviluppatoredelle quali è possibile usufruire direttamente alle Impostazioni. Tra le tante opzioni c'è  Forza rendering GPU di cui molti non conoscono ancora la sua vera funzione; è quindi per questo motivo in questo articolo vi spiegheremo il funzionamento di questa opzione.



Inizialmente non era possibile utilizzare la GPU per disegnare contenuti in 2D all’interno delle applicazioni: si occupava di tutto la CPU. Con l’introduzione di Android 3.0 Honeycomb e delle API versione 11, Google ha dato agli sviluppatori la possibilità di specificare, all’interno del codice delle loro applicazioni, se il sistema poteva utilizzare l’accelerazione hw: di default, l’accelerazione era disabilitata per tutte le applicazioni, quindi erano gli sviluppatori a doverla abilitare manualmente. Nel caso in cui gli sviluppatori desiderassero provare le loro applicazioni con l’accelerazione hardware abilitata, avevano bisogno necessariamente di aggiungere una riga di codice al manifest e di ricompilarle.
Invece, con Android 4.0 Ice Cream Sandwich,  le cose iniziano a cambiare in maniera positiva :l’accelerazione HW, infatti, viene abilitata di default al contrario di come avveniva in Honeycomb, per cui gli sviluppatori potevano disabilitarla manualmente. Tutto questo grazie alle API versione 14 che vennero rilasciate insieme ad Android 4.0 Ice Cream Sandwich; ma cosa accadeva invece alle applicazioni che non erano state compilate con API livello 14? Semplicemente si tornava alla situazione di Honeycomb, dove non si poteva usufruire dell’accelerazione hw di default in quanto, essendo queste applicazioni compilate per una versione precedente delle API, si aveva bisogno di un intervento da parte degli sviluppatori per poter usufruire dell’accelerazione hw.
Per questo motivo, Google ha deciso di introdurre l’opzione “Forza rendering GPU all’interno delle Opzioni sviluppatore, proprio per dar modo agli sviluppatori (o agli utenti più esperti) di sfruttare l’accelerazione HW anche nelle applicazioni per le quali non è abilitata, senza che si abbia la necessità di ricompilarle ogni volta.
Forzare l’accelerazione HW talvolta può comportare dei lievi miglioramenti ma anche dei peggioramenti dell’esperienza utente: alcune applicazioni possono andare in crash, altre invece possono presentare problemi, altre ancora possono risultare migliorate. Forzare il rendering GPU è quindi un’opzione che può essere attivata o disattivata a seconda dell’esperienza che ogni utente ha: se si ha l’impressione che le app non abbiano alcun tipo di problema, allora l’opzione può essere tenuta attiva; se invece si ha l’impressione che non sia proprio tutto perfettamente funzionante, allora è meglio disattivarla.
Ogni processo che abbia il rendering via hardware attivo consuma 8MB di RAM in più indipendentemente da tutto il resto proprio per via dell’accelerazione via GPU. Questo può essere un problema relativo su terminali con molta memoria, ma su dispositivi con 1GB o meno di RAM un numero alto di processi in esecuzione accelerati via hardware può far insorgere problemi.
C’è però da sottolineare un aspetto molto importante, e cioè: ormai le applicazioni compilate con API precedenti al livello 14 sono davvero pochissime rispetto a tutte le altre compilate con versioni successive delle API. Per questo motivo, quasi certamente non si noterà alcuna differenza tra l’abilitazione dell’accelerazione hw e la disabilitazione.


Nessun commento:

Posta un commento