Tra le novità di Mavericks pensate per l'ottimizzazione di prestazioni e consumi, soprattutto sui portatili, è presente App Nap. In tandem con una delle altre nuove funzionalità implementate, Timer Coalescing, presenta un funzionamento sulla carta piuttosto semplice ma che richiede dietro le quinte una gestione molto articolata da parte del sistema operativo in modo da ottenere l'effetto cercato e non andare a complicare invece le cose.

Innanzitutto, App Nap non è presente su tutti i Mac supportati da Mavericks, ma solo su quelli degli ultimi anni (non essendoci purtroppo una lista non possiamo dirlo con certezza). Il mio MacBook bianco, ad esempio, non presenta alcuna traccia della funzionalità, se non una colonna opzionale in Monitoraggio Attività che mostra un laconico No per qualsiasi applicazione. Se invece il vostro computer è tra i "prescelti", come quello di Maurizio da cui abbiamo tratto gli screenshot sottostanti, allora troverete praticamente tutte le app abilitate di default, soluzione adottata da Apple per non incorrere in tempi di attesa dovuti all'adeguamento da parte degli sviluppatori di terze parti, che possono comunque contare su un'apposita API per approfondire ulteriormente l'integrazione nei loro prodotti e modificare l'entità dell'impatto sulle prestazioni in background.

Il comportamento di App Nap è poi automaticamente inibito in certi casi, come durante la riproduzione di contenuti multimediali o il download di file, attività per le quali rischierebbe appunto effetti controproducenti. Lo stesso vale per tutti i processi che non dispongono di manifestazione visiva attraverso finestre ma vengono eseguiti in background. Dove il meccanismo è libero di entrare in gioco, però, il risultato ottenuto è tangibile. Nel nostro esempio, abbiamo ricreato una condizione simile alla dimostrazione fatta dalla stessa Apple durante il keynote inaugurale del WWDC 2013 di giugno. Consideriamo Safari aperto sulla pagina famo.us, che presenta una tavola periodica interattiva ricca di applicazioni. Quando il browser è in piena attività, possiamo vedere da Monitoraggio Attività che presenta un consistente uso di risorse, sia per la CPU che per la batteria.

appnapnonattivo

Apriamo ora Pages, in quanto vogliamo preparare un documento. La sua finestra attiva si sovrapporrà a quella di Safari, innescando così App Nap. Cercando di tradurre piuttosto sommariamente ciò che spiega John Siracusa nella sua completissima recensione di Mavericks su Ars Technica (lettura consigliata ai più interessanti a patto di riservarsi almeno un'oretta di tempo per leggerla davvero bene), i processi relativi a Safari vengono rallentati intervenendo su Timer Coalescing: le operazioni da effettuare continuano a essere raggruppate in specifici blocchi (i timer), come previsto dallo stesso coalescing, ma l'intervallo di tempo tra lo stato di quiete (idle) e quello di esecuzione del browser inattivo viene allungato in modo da non impegnare eccessivamente capacità di calcolo ed energia su compiti diversi da quelli previsti per Pages. Il risultato che si ottiene è il seguente:

appnapattivo

Safari ora presenta un impatto energetico addirittura pari a zero, con occupazione minima delle risorse della CPU. Un risultato ottimo, che naturalmente si apprezzerà meglio in contesti decisamente più impegnativi rispetto a quello qui sopra descritto e utilizzato solo a fini di esempio.

Tutto bene, quindi? Purtroppo no. Come qualsiasi funzione software, App Nap ha i suoi difetti. In particolare può presentare in determinati casi un "eccesso di zelo" nel limitare le prestazioni delle applicazioni in background. La più colpita pare attualmente essere Final Cut Pro X, in particolare nelle operazioni come il rendering dove occorre parecchio tempo e l'utente non può impiegare il programma per altro. Lasciato ad agire in sottofondo, il processo viene poi rallentato da App Nap ritrovandosi dopo ore ancora lontani dal completamento o nei casi peggiori direttamente in un blocco totale delle attività di Final Cut. Fortunatamente, è possibile intervenire manualmente su App Nap, disattivandolo dov'è più necessario farlo. Si tratta di un'impostazione caso per caso, da replicare su ogni singola applicazione interessata.

Per farlo apriamo una finestra del Finder, quindi dalla barra laterale o dal menu Vai entriamo nella cartella Applicazioni. Troviamo l'applicazione per la quale desideriamo tenere App Nap alla larga. Selezioniamola con un clic e premiamo la combinazione di tasti Cmd + I, facendo comparire la finestra nello screenshot sottostante. Mettiamo un segno di spunta su "Impedisci App Nap" e chiudiamo il tutto.

impedisciappnap

Nel nostro caso, da lì in poi Final Cut Pro andrà sempre "a tavoletta" e non presenterà rallentamenti che possano portare ai problemi descritti più sopra. Non è da escludere che, in modo simile ad altre funzionalità piuttosto aggressive nel funzionamento come Versioni, non diventi possibile con uno dei prossimi aggiornamenti impedire l'uso di App Nap a livello globale nel sistema e non solo su alcune apps. Il consiglio che vi diamo è però quello di addomesticarlo invece che vederlo come un nemico: può dare sin dal breve termine delle soddisfazioni dando un'ulteriore boccata di ossigeno ai già durevoli MacBook Air/Pro.