Analizzare il consumo di energia nelle app dello Store
Il profiler Consumo di energia di Visual Studio consente di analizzare il consumo di potenza ed energia delle app di Windows Store in dispositivi tablet a basso consumo che funzionano per tutto o parte del tempo con le proprie batterie. In un dispositivo alimentato a batteria, un'app che utilizza troppa energia può causare un'insoddisfazione del cliente tale da indurlo a disinstallarla. L'ottimizzazione dell'utilizzo di energia può aumentare l'adozione e l'utilizzo dell'app da parte dei clienti.
Che cos'è il profiler Consumo di energia, come funziona e cosa misura
Identificare gli scenari con i contrassegni utente
Configurare l'ambiente per la profilatura
Raccogliere i dati relativi al profilo energetico per l'app
Raccogliere i dati relativi al profilo energetico per un'app installata
Analizzare i dati relativi al profilo energetico
Ottimizzare l'utilizzo di energia
Altre risorse
Il profiler Consumo di energia acquisisce le attività relative allo schermo, alla CPU e alle connessioni di rete di un dispositivo durante la sessione di profilatura. Genera quindi stime della potenza utilizzata per tali attività e della quantità totale di energia necessaria per la sessione di profilatura.
Nota
Il profiler di energia stima la potenza e l'utilizzo dell'energia tramite un modello software di un dispositivo hardware standard di riferimento che è rappresentativo dei dispositivi tablet a bassa alimentazione in cui l'applicazione potrebbe essere in esecuzione.Per stime accurate, consigliamo di raccogliere i dati di profilo in un dispositivo tablet a bassa alimentazione.
Sebbene tale modello consenta ottime stime per una varietà di dispositivi a basso consumo, i valori effettivi del dispositivo profilato saranno probabilmente diversi.Utilizza i valori per trovare le attività di visualizzazione, CPU e rete che sono dispendiose rispetto ad altri utilizzi di risorse e pertanto potrebbero essere utili candidati per l'ottimizzazione.
Il profiler Consumo di energia utilizza le definizioni di potenza ed energia seguenti:
Potenza misura la quantità di forza utilizzata per eseguire un lavoro in un determinato periodo di tempo. Nell'elettrotecnica l'unità di misura standard della potenza è un watt, definito come la velocità di esecuzione del lavoro quando un ampere di corrente attraversa una differenza di potenziale elettrico pari a un volt. Nel grafico Utilizzo energia le unità vengono visualizzate come milliwatt mW che corrispondono a un millesimo (10 -3) di un watt.
Nota che la potenza presenta una direzione (il lavoro può aumentare o diminuire in un periodo di tempo) e una velocità (la misura in cui il lavoro aumenta o diminuisce).
Energia misura la quantità totale di potenza, sia come capacità che come potenziale, come nella capacità energetica di una batteria, o come l'ammontare totale della potenza spesa in un determinato periodo di tempo. L'unità di energia è un watt-ora, la quantità di potenza di un watt applicata costantemente per un'ora. In Riepilogo energia le unità vengono visualizzate come milliwatt-ore mW-h.
Ad esempio, la batteria completamente carica di un tablet dispone di una certa quantità di energia immagazzinata. Dato che l'energia viene utilizzata per eseguire attività quali la comunicazione in rete, il calcolo dei valori o la visualizzazione della grafica, la velocità di esaurimento della potenza della batteria varia. Per qualsiasi periodo di tempo, la potenza totale utilizzata viene anche misurata in energia.
Puoi aggiungere contrassegni utente ai dati di profilatura per identificare aree nel righello della sequenza temporale.
Il contrassegno viene visualizzato come triangolo arancione nella sequenza temporale in corrispondenza del momento in cui il metodo viene eseguito. Il messaggio e l'ora vengono visualizzati come descrizione comando quando passi il puntatore del mouse sul contrassegno. Se due o più contrassegni utente sono vicini, i contrassegni vengono uniti e i dati della descrizione comando vengono combinati. Puoi eseguire lo zoom avanti nella sequenza temporale per separare i contrassegni.
Aggiungere contrassegni al codice C#, Visual Basic e C++
Per aggiungere un contrassegno utente al codice C#, Visual Basic e C++, crea innanzitutto un oggetto Windows.Foundation.Diagnostics LoggingChannel. In secondo luogo, inserisci chiamate ai metodi LoggingChannel.LogMessage in corrispondenza dei punti nel codice che desideri contrassegnare. Usa LoggingLevel.Information nelle chiamate.
Quando il metodo viene eseguito, un contrassegno utente viene aggiunto ai dati di profilatura con un messaggio.
Nota
-
Windows.Foundation.Diagnostics LoggingChannel implementa l'interfaccia Windows.Foundation.IClosable (proiettata come System.IDisposable in C# e VB). Per evitare il consumo eccessivo di risorse del sistema operativo, chiama LoggingChannel.CloseClose() (Dispose() in C# e VB) quando non usi più un canale di registrazione.
-
Ogni canale di registrazione aperto deve avere un nome univoco.Il tentativo di creare un nuovo canale di registrazione con lo stesso nome di un canale non eliminato causa un'eccezione.
Per esempi, fai riferimento all'Esempio LoggingSession in Windows SDK Sample.
Aggiungere contrassegni al codice JavaScript
Per aggiungere contrassegni utente aggiungi il seguente codice in corrispondenza dei punti nel codice che desideri contrassegnare:
if (performance && performance.mark) {
performance.mark(markDescription);
}
markDescription è una stringa che contiene il messaggio da visualizzare nella descrizione comando del contrassegno utente.
Per ottenere stime accurate, ti consigliamo di profilare l'utilizzo di energia dell'app in un dispositivo a basso consumo alimentato dalle proprie batterie. Poiché Visual Studio non è supportato sulla maggior parte di questi dispositivi, dovrai connettere il computer di Visual Studio al dispositivo utilizzando Visual Studio Remote Tools. Per connetterti a un dispositivo remoto, devi configurare sia il progetto di Visual Studio che il dispositivo remoto. Per ulteriori informazioni, vedi Eseguire app di Windows Store in un computer remoto da Visual Studio.
Suggerimento
-
Sconsigliamo la profilatura dell'energia nel simulatore di Windows Store o nel computer di Visual Studio.La profilatura su un dispositivo reale fornisce dati molto più realistici.
-
Esegui la profilatura in un dispositivo di destinazione mentre è alimentato dalle proprie batterie.
-
Chiudi le altre app che potrebbero utilizzare le stesse risorse (rete, CPU o schermo).
Scegli Prestazioni e diagnostica dal menu Debug.
Scegli Consumo di energia, quindi Avvia.
Nota
Quando avvii il profiler Consumo di energia, potresti visualizzare la finestra Controllo dell'account utente che richiede l'autorizzazione a eseguire VsEtwCollector.exe.Scegliere Sì.
Verifica la funzionalità dell'app per la raccolta dei dati.
Per interrompere la profilatura, passa di nuovo a Visual Studio (ALT+TAB) e nella pagina dell'hub di diagnostica scegli Arresta raccolta.
Visual Studio consente di analizzare i dati raccolti e di visualizzare i risultati.
Lo strumento Consumo di energia può essere eseguito solo nelle app di Window Store 8.1 avviate da una soluzione di Visual Studio o installate da Window Store. Quando una soluzione viene aperta in Visual Studio, la destinazione predefinita è Progetto di avvio. Per indirizzare un'app installata:
Scegli Cambia destinazione e App installata.
Scegli la destinazione dall'elenco Seleziona pacchetto applicazioni installato.
Scegli Consumo di energia nella pagina hub di diagnostica.
Scegli Avvia per iniziare la profilatura.
Per interrompere la profilatura, passa di nuovo a Visual Studio (ALT+TAB) e nella pagina dell'hub di diagnostica scegli Arresta raccolta.
I dati relativi al profilo energetico vengono visualizzati in una finestra di documento di Visual Studio:
Il file di rapporto è denominato ReportYYYYMMDD-HHMM.diagsession. Puoi modificare il nome del file se decidi di salvarlo. |
|
La sequenza temporale mostra la durata della sessione di profilatura, gli eventi di attivazione del ciclo di vita dell'app e i contrassegni utente. |
|
Puoi limitare il rapporto a una parte della sequenza temporale trascinando le barre blu per selezionare un'area della stessa. |
|
Utilizzo energia è un grafico a più linee in cui viene visualizzata la modifica della potenza in uscita causata da una risorsa del dispositivo durante una sessione di profilatura. Il profiler Consumo di energia consente di tenere traccia della potenza utilizzata dalla CPU, dalle attività di rete e dallo schermo. |
|
Nel grafico Risorse (On/Off) vengono fornite informazioni sui costi energetici della rete. La barra Rete rappresenta l'ora in cui è stata aperta la connessione di rete. La barra figlio Trasferimento dati rappresenta il momento in cui l'app stava ricevendo o inviando dati sulla rete. |
|
In Riepilogo utilizzo energia viene visualizzata la quantità proporzionale di energia totale utilizzata dalla CPU, dalle attività di rete e dallo schermo nella sequenza temporale selezionata. |
Per analizzare i dati relativi al profilo energetico
Individua un'area in cui la potenza delle risorse ha raggiunto il massimo livello. Collega l'area di picco alle funzionalità dell'app. Utilizza quindi le barre di controllo della sequenza temporale per ingrandire l'area. Se sei concentrato sull'utilizzo della rete, espandi il nodo Rete del grafico Risorse (On/Off) per confrontare l'ora di apertura della connessione di rete col momento in cui l'app stava ricevendo e trasferendo dati sulla rete. La riduzione del tempo in cui la rete rimane aperta inutilmente costituisce una straordinaria ottimizzazione.
Oltre ai costi di trasmissione dei dati, le connessioni di rete comportano costi energetici per l'inizializzazione, la gestione e la chiusura della connessione. Alcune reti gestiscono la connessione per un periodo di tempo successivo all'invio o alla ricezione dei dati per consentire la trasmissione di una maggiore quantità di dati su una singola connessione. Puoi utilizzare il riquadro Risorse (On/Off) per esaminare la modalità di interazione dell'app con la connessione.
Se le barre Rete e Trasferimento dati indicano che la connessione rimane aperta per lunghi periodi di tempo per trasmettere in modo intermittente una serie di pacchetti di dati di piccole dimensioni, puoi suddividere i dati in batch per inviarli in un'unica trasmissione, riducendo il tempo in cui la rete rimane aperta e risparmiando costi energetici.
Hai un controllo minore sui costi energetici dello schermo. La maggior parte delle schermate per la visualizzazione dei colori chiari richiede una quantità di energia maggiore rispetto a quelli più scuri, quindi l'utilizzo di uno sfondo scuro costituisce un modo per ridurre i costi.
Nelle sezioni Stato della connessione e gestione dei costi per C#/VB/C++ e XAML e JavaScript e HTML di Windows Dev Center vengono descritte le API di Windows che forniscono informazioni sulla connettività di rete. Tali informazioni possono essere utilizzate dall'app per ridurre il costo del traffico di rete.
Il simulatore di Visual Studio per le app di Windows Store consente di simulare le proprietà di connessione dati delle API delle informazioni di rete. Vedere Eseguire applicazioni Windows Store nel simulatore
Gli strumenti Temporizzazione funzione JavaScript e Utilizzo CPU consentono di ridurre il carico della CPU quando è provocato da funzioni inefficienti. Vedi Analizzare l'utilizzo della CPU nelle app dello Store, Raccogliere dati su Temporizzazione funzione JavaScript nelle app dello Store in un computer locale e Raccogliere dati su Temporizzazione funzione JavaScript nelle app dello Store in un dispositivo remoto