Eseguire strumenti di analisi dalla pagina Prestazioni e diagnostica
Puoi analizzare le prestazioni, l'uso della memoria e il consumo energetico delle app Windows Store e Windows Phone usando gli strumenti di diagnostica e i profiler di Visual Studio. L'hub Prestazioni e diagnostica semplifica la selezione e l'esecuzione di questi strumenti, combina più strumenti in una singola esecuzione e gestisce i report generati da tali strumenti. Puoi eseguire questi strumenti sulla maggior parte delle destinazioni di distribuzione. Per le app Windows Phone, usa un telefono o un emulatore. Per le app Windows Store, usa un PC remoto, il simulatore o il computer che esegue Visual Studio. Dopo aver raccolto i dati, il report di diagnostica visualizza i grafici cronologia e le visualizzazioni dettagli dei dati. I filtri e le impostazioni del report di Prestazioni e diagnostica ti consentono di concentrarti sulle parti critiche dei dati.
Strumenti dell'hub Prestazioni e diagnostica
L'hub Prestazioni e diagnostica ti mostra gli strumenti che puoi usare su tipi particolari di app (XAML e C#/VB/C++ o HTML e JavaScript) e gli strumenti che puoi usare in una singola esecuzione.
In questo articolo
Guida introduttiva: raccogliere dati di diagnostica
Raccogliere dati di diagnostica
Aggiungere contrassegni utente per identificare le posizioni nei dati di diagnostica | Impostare il progetto di avvio | Impostare la destinazione di analisi | Scegliere gli strumenti da eseguire durante la sessione di diagnostica | Avviare e arrestare la sessione di diagnostica
Aprire un file di sessione di diagnostica
Pagina di dati di Prestazioni e diagnostica
Risoluzione dei problemi
Guida introduttiva: raccogliere dati di diagnostica
Nota
Devi disporre dei privilegi di amministratore per eseguire gli strumenti di prestazioni e diagnostica.Puoi eseguire Visual Studio come amministratore oppure puoi scegliere di eseguire gli strumenti come amministratore quando avvii la sessione di diagnostica.
Apri il progetto in Visual Studio.
Imposta il percorso di distribuzione.
Le app Windows Phone possono essere distribuite su un telefono o su uno degli emulatori di Visual Studio.
Le app Windows Store possono essere distribuite nel computer che esegue Visual Studio, nel simulatore di Visual Studio o in un tablet o PC connesso in rete.
Nota: l'esecuzione di una sessione di diagnostica in un tablet o PC remoto richiede l'installazione e l'esecuzione di Visual Studio Remote Tools nella destinazione remota. Vedere Eseguire app di Windows Store in un computer remoto da Visual Studio.
Nell'elenco dei percorsi di debug sulla barra degli strumenti del debugger, seleziona il percorso di distribuzione per la tua app. Ecco l'elenco delle app telefono:
Apri una sessione di Prestazioni e diagnostica. Scegli Prestazioni e diagnostica dal menu Debug (tasto di scelta rapida: ALT + F2).
Nell'hub Prestazioni e diagnostica scegli uno o più strumenti da eseguire durante la sessione. Vengono visualizzati solo gli strumenti applicabili al tipo di progetto e al linguaggio di programmazione. Quando scegli uno strumento di diagnostica, quelli che non possono essere eseguiti nella stessa sessione di diagnostica vengono disabilitati. Ecco le possibili scelte per un'app JavaScript:
Per avviare la sessione di diagnostica, scegli Avvia.
Esegui gli scenari per cui desideri raccogliere dati.
Durante la sessione, alcuni strumenti visualizzano grafici dei dati in tempo reale nella pagina Prestazioni e diagnostica.
Per terminare la sessione di diagnostica, scegli Arresta raccolta.
Raccogliere dati di diagnostica
Aggiungere contrassegni utente per identificare le posizioni nei dati di diagnostica | Impostare il progetto di avvio | Impostare la destinazione di analisi | Scegliere gli strumenti da eseguire durante la sessione di diagnostica | Avviare e arrestare la sessione di diagnostica
Aggiungere contrassegni utente per identificare le posizioni nei dati di diagnostica
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.
Nota
-
I report di Temporizzazione funzione JavaScript non visualizzano i contrassegni utente.
-
I report non visualizzano i contrassegni utente quando lo strumento Utilizzo CPU è l'unico strumento usato in una sessione di diagnostica.
-
Per esempi, fai riferimento all'Esempio LoggingSession in Windows SDK Sample.
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.
Note
L'aggiunta di canali di registrazione al codice implica alcuni problemi:
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 aperto causa un'eccezione.
Un modo per evitare nomi duplicati nel codice consiste nell'usare un metodo statico (Shared in VB) per restituire un LoggingChannel il cui nome è sicuramente univoco. Ecco un esempio in cui viene usato un GUID per garantire l'univocità:
//using Windows.Foundation.Diagnostics
public static LoggingChannel GetLoggingChannel()
{
var name = Guid.NewGuid().ToString();
return new LoggingChannel(name);
}
'Imports Windows.Foundation.Diagnostics
Public Shared Function GetLoggingChannel() As LoggingChannel
Dim Name = Guid.NewGuid().ToString()
GetLoggingChannel = New LoggingChannel(Name)
End Function
//using namespace Windows::Foundation::Diagnostics;
static LoggingChannel^ MainPage::GetLoggingChannel()
{
auto name = (ref new Guid())->ToString();
auto channel = ref new LoggingChannel(name);
return channel;
}
C# e VB: gli oggetti LoggingChannel devono essere eliminati
Dal momento che gli oggetti LoggingChannel usano risorse di sistema, le proiezioni C# e VB di LoggingChannel derivano dall'interfaccia System.IDisposable e permettono di rilasciare le risorse prima che l'oggetto sia distrutto dal Garbage Collector CLR. Nel codice C++ l'oggetto LoggingChannel viene distrutto e le risorse vengono rilasciate non appena l'oggetto non è più compreso nell'ambito. Ecco alcuni esempi di modelli che puoi usare per aggiungere contrassegni utente a un file della sessione di diagnostica:
void MyScenario()
{
var logLevel = LoggingLevel.Information;
using(var channel = Utils.GetLoggingChannel())
{
channel.LogMessage("MyScenario Start", logLevel);
// scenario code
channel.LogMessage("MyScenario End", logLevel);
}
}
Sub MyScenario()
Dim logLevel = LoggingLevel.Information
Using channel As LoggingChannel = Utils.GetLoggingChannel()
channel.LogMessage("MyScenario Start", logLevel)
'scenario code
channel.LogMessage("MyScenario End", logLevel)
End Using
End Sub
// m_channel resources are released when containing
// object goes out of scope
LoggingChannel^ m_channel = MainPage::GetLoggingChannel();
LoggingLevel m_logLevel = LoggingLevel::Information;
void MyScenario()
{
m_channel->LogMessage(L"MyScenario Start", m_logLevel);
//scenario code
m_channel->LogMessage(L"MyScenario Start", m_logLevel);
}
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.
Impostare il progetto di avvio
Se la soluzione contiene più progetti di app, assicurati che quella che desideri analizzare sia impostata come progetto di avvio. In Esplora soluzioni seleziona il progetto e scegli Imposta come progetto di avvio dal menu di scelta rapida.
Impostare il percorso di distribuzione
Puoi eseguire sessioni di diagnostica per app telefono in un Windows Phone direttamente connesso al computer che esegue Visual Studio o in un emulatore del telefono di Visual Studio. Puoi eseguire app Windows Store nel computer che esegue Visual Studio, nel simulatore del dispositivo di Visual Studio o in un dispositivo remoto connesso a Visual Studio in rete o connesso direttamente al computer che esegue Visual Studio con un cavo Ethernet-USB. Puoi impostare la destinazione di distribuzione nella pagina Debug delle proprietà del progetto oppure scegliere la destinazione dall'elenco di percorsi di distribuzione sulla barra degli strumenti di Visual Studio. Ecco l'elenco di distribuzione per le app Windows Store:
La scelta effettuata sulla barra degli strumenti del percorso di debug viene salvata nelle proprietà del progetto.
|
Impostare la destinazione di analisi
Oltre ad avviare l'app dal progetto di Visual Studio, puoi eseguire sessioni di diagnostica su destinazioni alternative. Puoi ad esempio eseguire la diagnostica dei problemi di prestazioni su una versione dell'app installata da Windows App Store.
Puoi avviare le app Windows Store già installate in un dispositivo o collegare gli strumenti di diagnostica a un'app Windows Store già in esecuzione. Quando scegli App in esecuzione o App installata, selezioni l'app da un elenco che rileva le app nella destinazione di distribuzione specificata. |
|
Quando scegli Internet Explorer, specifichi l'URL e puoi modificare la destinazione di distribuzione del telefono. |
Scegliere gli strumenti da eseguire durante la sessione di diagnostica
Nell'hub Prestazioni e diagnostica scegli uno o più strumenti da eseguire durante la sessione di diagnostica. Vengono visualizzati solo gli strumenti applicabili al tipo di progetto e al linguaggio di programmazione. Quando scegli uno strumento di diagnostica, quelli che non possono essere eseguiti nella stessa sessione di diagnostica vengono disabilitati. Ecco le possibili scelte per un'app JavaScript:
Avviare e arrestare la sessione di diagnostica
Per avviare la sessione di diagnostica, scegli Avvia.
Per terminare la sessione di diagnostica e avviare l'analisi dei dati, scegli Arresta raccolta nella parte inferiore della pagina.
Aprire un file di sessione di diagnostica
Quando termini la raccolta dei dati in una sessione di diagnostica, i dati vengono immediatamente analizzati e visualizzati nel report di Prestazioni e diagnostica.
Puoi anche aprire i file di sessione .diagnosis aperti dall'elenco dei file aperti di recente nell'hub Prestazioni e diagnostica.
Scegli il pulsante mostra o nascondi nella parte superiore dell'hub Prestazioni e diagnostica per espandere o comprimere l'elenco dei file aperti di recente.
Report di Prestazioni e diagnostica
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 report a una parte della sequenza temporale trascinando le barre blu per selezionare un'area della stessa. |
|
Uno strumento visualizza uno o più grafici master. Se la sessione di diagnostica viene creata con più strumenti, tutti i grafici master vengono visualizzati. |
|
Puoi comprimere ed espandere i singoli grafici. |
|
Se i dati includono informazioni raccolte tramite più strumenti, i dettagli di ogni strumento vengono raccolti in schede. |
|
A uno strumento possono essere associate una o più visualizzazioni dettagli. La visualizzazione viene filtrata in base alla sezione selezionata della cronologia. |
Risoluzione dei problemi
Eventi di diagnostica rilasciati.Alcune informazioni del report potrebbero essere mancanti o non precise
L'agente di raccolta dati negli strumenti di Prestazioni e diagnostica può richiedere quantità elevate di memoria e CPU. Se l'agente di raccolta dati non riesce a registrare tutti gli eventi di diagnostica, mostra il messaggio in una barra informazioni nella parte superiore della pagina Prestazioni e diagnostica. Alcuni dati del report potrebbero essere mancanti o non validi.
Per risolvere il problema, prova a eseguire questi passaggi per liberare risorse nel computer, quindi esegui di nuovo la sessione di diagnostica:
Chiudi tutte le altre app che non fanno parte della sessione di diagnostica.
Semplifica lo scenario, in modo da raccogliere meno dati.
Usa meno strumenti di diagnostica in una singola sessione.