E' da un pò di tempo che volevo postare qualcosa a riguardo del thermal throttling, per brevità TT, perchè sul nostro terminale ne noto spesso gli effetti.
Il Thermal Throttling, detto in parole (molto) povere, è la (normalissima) funzione per cui, all'arrivo di una certa temperatura, la cpu scala la sua frequenza in modo da contrastare l'aumento di calore; dico "normale" perchè è ormai da anni, vista la crescente potenza, che qualsiasi cpu è dotata di questa funzione, sia in ambito mobile, sia in ambito desktop (in questo caso anche la gpu, per l'ambito mobile non ne sono sicuro).
I "pro": i componenti vengono preservati dal surriscaldamento; non bisogna pensare subito all'effetto più nefasto, alla "fusione" e alla conseguente rottura del terminale, ma anche a effetti più nascosti e lenti, infatti un'operare costante ad alte temperature, porta ad un riduzione di efficienza delle prestazioni nel tempo (c'è tutta una spiegazione fisica complessa). Viene protetto principalmente il soc, ma indirettamente anche tutta la componentistica, i materiali, e soprattutto (sempre indirettamente) la batteria visto che le alte temperature sono nemiche della sua efficienza nel tempo.
I "contro": come è facile intuire, una riduzione di frequenza, porta ad una riduzione delle prestazioni. A meno che non si eseguano operazioni complesse, non noteremo questo effetto, perchè, anche con una potenza ridotta, questa sarà cmq sufficiente a far girare in modo ottimale l'applicazione; ma, molto più probabilmente, se non eseguiamo operazioni particolarmente pesanti, non arriveremo nemmeno al punto di attivazione del TT.
Se tutto ciò è normale, dove sta il problema? Il problema sta nel fatto che a volte, questo taglio di potenza si fa sentire fastidiosamente. Userò un esempio, un'applicazione che stressa il cellulare, tipo Real Racing 3 (ma ognuno potrebbe avere il suo esempio personale di app particolarmente esosa di risorse). A cellulare freddo il gioco è fluidissimo, ma man mano che si riscalda, si nota un calo del frame rate; basta guardare come scorre l'asfalto o gli alberi intorno. Nulla che pregiudichi la giocabilità, per carità, ma l'effetto (frustrante) si nota eccome!
Il problema "potrebbe" essere sia hardware (irrisolvibile, visto che parliamo di soc e di materiali dissipanti), sia software, cioè nel modo in cui questa funzione viene modulata; infatti, credo che la LG abbia un pò esagerato col TT, o quantomeno non ha prestato la giusta attenzione e cura nell'applicarla, sempre che non sia una funzione controllata solo ed esclusivamente dal soc snapdragon s800, e quindi in questo caso bisognerebbe chiamare in causa la qualcomm. Personalmente non conosco l'entità di questo taglio, non so quanti MHz vengano sottratti, ma empiricamente posso dire che non sono sicuramente pochi.
Se un'architettura precedente, tipo lo snapdragon s4 (krait 200 e gpu adreno 320) a 1,5 GHz, da una sensazione di maggior potenza e fluidità rispetto ad un'architettura recente come lo snapdragon s800 (krait 400 e gpu adreno 330), significa che il taglio è considerevole e di sicuro (tuttavia sempre supposizione empirica) la frequenza della cpu scende al di sotto degli 1,5 GHz.
Io credo che sia un taglio troppo "di sicurezza", della serie "tagliamo tanto e ci pariamo le chiappe", senza stare a fare calcoli più approfonditi sul modulare meglio questo taglio, in modo da renderlo, se non invisibile all'utente, quantomeno più "dolce" e meno notabile.
Su xda sono state individuate due voci del menù segreto (dal tastierino 3845#*802#) che hanno sicuramente qualcosa a che vedere col TT:
a) High temperature property OFF
b) Thermal mitigation daemon OFF
(precisando: il nome è quello lì e quello rimane, quindi se portiamo il valore su ON, abbiamo attivato l'OFF... un pò contorto, ma è così)
Disattivando questi due valori, si disattiva il TT, ma finora nessuno è riuscito a dare un preciso significato a entrambe le voci, in modo tale da capirci qualcosa in più, valutare i rischi, valutare una possibile combinazione ottimale dei due, ecc... fatto sta, che disabilitandole il device diventa decisamente più performante, anche se non si sa a quale prezzo.
EDIT:
Facendo un giro più approfondito su xda ho capito che:
a) Thermal Mitigation Daemon OFF: serve a diminuire automaticamente la luminosità dello schermo quando la temperatura sale oltre una certa soglia, infatti il monitor genera calore, proporzionalmente al grado di luminosità; quindi questa prima impostazione non riguarda da vicino il TT della CPU;
b) High Temperature Property OFF: questo è la vera impostazione del TT. Dati specifici relativi al G2 non ne ho trovati, ma in una discussione su XDA riguardante l'LG Optimus G, si dice che sposti la soglia di attivazione del TT da 60° a 70° (parlo di temperature interne, perchè le temperature che sentiamo al tatto sono sempre inferiori); generalmente le cpu mobili (ma attendo dati più precisi riguardo l's800 in particolare) operano in "completa" sicurezza fino a 70°, quindi, un pò come già avevo intuito, LG ha usato un valore troppo conservativo; spostare la soglia a 70°, oltre a diminuire il TT, "dovrebbe" cmq rientrare in una soglia di sicurezza. Ripeto, sono tutti dati da verificare e cmq potrebbe portare solo ad un rinvio (pochi minuti?) dell'attivazione del TT; resta preferibile un'altra strada per la regolazione (kernel o chissà cos'altro);
c) esistono dei files, nelle cartelle system/etc e system/bin ( [DISCONTINUED][Kernel][AOSP/CM] Custom G2 (OC/UV/Intelli/FauxSound/Linaro) - Page 43 - xda-developers ) che contengono i valori di regolazione del TT, ma qui servirebbe un esperto; io ho provato ad aprirli con un editor di testo e non ci capisco niente, ma ho avuto il "sentore", tra tanti numeri, che il TT porti la cpu a 1150 MHz (sempre in linea con le mie supposizioni);
Come si potrebbe migliorare la situazione?
1) Abbassare le tensioni di funzionamento in modo tale che il cell scaldi di meno, ma l'operazione non è facilissima e non abbiamo la certezza di ottenere il risultato voluto;
2) Abbassare la frequenza massima di funzionamento della cpu, per es. invece che 2,26 GHz, portarla a 2,00 GHz. Se fossero due auto, la prima viaggerebbe a 226 Km/h, ma con la necissità di fermarsi di tanto in tanto; la seconda sarebbe un'auto che viaggia a 200Km/h, poco meno, ma che non ha la necessità di fermarsi e paradossalmente (ma non troppo) il tempo sul giro sarebbe migliore con l'auto più lenta; ma anche qui la questione è complicata: qual è la frequenza che garantisce questo risultato? potrebbe anche essere 1,2 GHz per assurdo e allora sarebbe meglio lasciare le cose come stanno; bisognerebbe fare troppe prove;
3) Se l'entità e il comportamento del TT fossero in qualche modo regolabili... tipo via kernel... qualche dev potrebbe fare un kernel ottimizzato e saremmo tutti felici;
Io la soluzione non ce l'ho... voi che ne pensate?