Per garantire prestazioni ottimali, le prestazioni devono essere progettate e pianificate come qualsiasi altra funzionalità delle app. Gli strumenti messi a disposizione da Microsoft consentono di misurare le prestazioni delle app e, se necessario, migliorare l'uso della memoria, la velocità effettiva del codice e la velocità di risposta. Questo argomento contiene un elenco degli strumenti per l'analisi delle prestazioni forniti da Microsoft e collegamenti ad altri argomenti relativi alle prestazioni per aree specifiche dello sviluppo di applicazioni.
Progettazione e pianificazione per le prestazioni
Per creare un'app con prestazioni ottimali, è necessario progettare le prestazioni procedendo come per qualsiasi altra funzionalità. È opportuno identificare gli scenari che prevedono prestazioni elevate, definire gli obiettivi in termini di prestazioni e misurare le prestazioni dell'app negli scenari identificati in modo tempestivo e frequente. Poiché ogni app è diversa dalle altre ed è caratterizzata da uno specifico percorso di esecuzione cruciale, identificare tempestivamente questi percorsi e concentrare gli sforzi su di essi permette di massimizzare la produttività.
Non è necessario conoscere a fondo la piattaforma di destinazione per creare un'app con prestazioni elevate. È però necessario capire quali parti delle parti della piattaforma di destinazione abbiano requisiti elevati in termini di prestazioni. Per fare questo, occorre misurare le prestazioni nelle prime fasi del processo di sviluppo.
Per individuare le aree cruciali per le prestazioni e definire gli obiettivi di prestazioni, tenere sempre presente l'esperienza utente. Il tempo di avvio e la velocità di risposta sono due aree chiave che influiscono sulla percezione dell'app dell'utente. Se l'app usa molta memoria può sembrare lenta, incidere negativamente su altre app in esecuzione nel sistema o, in alcuni casi, provocare errori nel processo di invio di Windows Store o Windows Phone Store. Inoltre, individuando le parti del codice eseguite più spesso, ci si può assicurare che siano ottimizzate.
Analisi delle prestazioni
Come parte del piano di sviluppo complessivo, stabilire dei punti in cui si misureranno le prestazioni dell'app e si confronteranno i risultati con gli obiettivi stabiliti in precedenza. Misurare l'app nell'ambiente e con l'hardware presumibilmente usato dagli utenti. Analizzando le prestazioni dell'app in modo tempestivo e frequente, è possibile modificare alcune decisioni architetturali che sarebbe costoso e dispendioso correggere più avanti nel ciclo di sviluppo. Le sezioni seguenti descrivono gli strumenti per le prestazioni che è possibile usare per analizzare le app e illustrano la funzionalità di traccia degli eventi usata da questi strumenti.
Strumenti per le prestazioni
Di seguito sono elencati alcuni strumenti per le prestazioni che è possibile usare con le app .NET Framework.
Strumento
Descrizione
Analisi prestazioni di Visual Studio
Consente di analizzare l'uso di CPU delle app .NET Framework che verranno distribuite in computer che eseguono il sistema operativo Windows.
Questo strumento è disponibile nel menu Debug di Visual Studio dopo l'apertura di un progetto. Per altre informazioni, vedere Esplora prestazioni. Nota: Usare Windows Phone'analisi delle applicazioni (vedere riga successiva) durante la destinazione Windows Phone.
Analisi applicazione di Windows Phone
Consente di analizzare l'uso di CPU e memoria, la velocità di trasferimento dati della rete, la velocità di risposta dell'app e il consumo di batteria delle app Windows Phone.
Consente di identificare i problemi prestazionali correlati alla CPU e alla memoria. Questo strumento usa la traccia degli eventi per Windows (ETW) e le API di profilatura CLR per fornire indagini avanzate sulla memoria e sulla CPU, nonché informazioni sulla compilazione garbage collection e JIT. Per altre informazioni su come usare PerfView, vedere i post di blog.
Per problemi specifici della memoria, vedere Using PerfView for Memory Investigations (Uso di PerfView per le analisi della memoria).
Consente di determinare le prestazioni complessive del sistema, ad esempio l'uso di memoria e risorse di archiviazione da parte dell'app quando più applicazioni sono in esecuzione nello stesso computer. Questo strumento è disponibile dall'area download come parte del Windows Assessment and Deployment Kit (ADK) per Windows 8. Per altre informazioni, vedere Windows Performance Analyzer.
Event Tracing for Windows (ETW)
ETW è una tecnica che consente di ottenere informazioni diagnostiche sul codice in esecuzione ed è essenziale per molti degli strumenti per le prestazioni indicati in precedenza. ETW crea log per particolari eventi generati dalle app .NET Framework e da Windows. Con ETW è possibile abilitare e disabilitare la registrazione in modo dinamico e dunque eseguire analisi dettagliate negli ambienti di produzione senza riavviare l'app. .NET Framework offre supporto per gli eventi ETW ed ETW è usato da numerosi strumenti per la profilatura e le prestazioni per generare dati sulle prestazioni. Spesso questi strumenti abilitano e disabilitano gli eventi ETW, quindi è utile conoscerli. È possibile usare specifici eventi ETW per raccogliere informazioni sulle prestazioni relative a particolari componenti dell'app. Per altre informazioni sul supporto ETW in .NET Framework, vedere ETW Events in the Common Language Runtime (Eventi ETW in Common Language Runtime) e Eventi ETW nella libreria TPL (Task Parallel Library) e PLINQ.
Prestazioni per tipo di applicazione
Per ogni tipo di app .NET Framework esistono procedure consigliate, considerazioni e strumenti per la valutazione delle prestazioni diversi. La tabella seguente contiene collegamenti ad argomenti relativi alle prestazioni per specifici tipi di app .NET Framework.
Offre suggerimenti sulle prestazioni che derivano dalla riscrittura di compilatori C# e Visual Basic nel codice gestito e include diversi esempi concreti tratti dal compilatore C#.
Informazioni su come ottimizzare il carico di lavoro per soddisfare i requisiti delle prestazioni mentre si bilanciano costi, affidabilità e sicurezza.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.