Prestazioni di .NET Framework.NET Framework Performance

Per garantire prestazioni ottimali, le prestazioni devono essere progettate e pianificate come qualsiasi altra funzionalità delle app.If you want to create apps with great performance, you should design and plan for performance just as you would design any other feature of your 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.You can use the tools provided by Microsoft to measure your app's performance, and, if needed, make improvements to memory use, code throughput, and responsiveness. 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.This topic lists the performance analysis tools that Microsoft provides, and provides links to other topics that cover performance for specific areas of app development.

Progettazione e pianificazione per le prestazioniDesigning and planning for performance

Per creare un'app con prestazioni ottimali, è necessario progettare le prestazioni procedendo come per qualsiasi altra funzionalità.If you want a great performing app, you must design performance into your app just as you would design any other feature. È 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.You should determine the performance-critical scenarios in your app, set performance goals, and measure performance for these app scenarios early and often. 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à.Because each app is different and has different performance-critical execution paths, determining those paths early and focusing your efforts enable you to maximize your productivity.

Non è necessario conoscere a fondo la piattaforma di destinazione per creare un'app con prestazioni elevate.You don’t have to be completely familiar with your target platform to create a high-performance app. È però necessario capire quali parti delle parti della piattaforma di destinazione abbiano requisiti elevati in termini di prestazioni.However, you should develop an understanding of which parts of your target platform are costly in terms of performance. Per fare questo, occorre misurare le prestazioni nelle prime fasi del processo di sviluppo.You can do this by measuring performance early in your development process.

Per individuare le aree cruciali per le prestazioni e definire gli obiettivi di prestazioni, tenere sempre presente l'esperienza utente.To determine the areas that are crucial to performance and to establish your performance goals, always consider the user experience. Tempi di avvio e velocità di risposta sono due aree chiave che incideranno sulla percezione dell'app da parte degli utenti.Startup time and responsiveness are two key areas that will affect the user’s perception of your app. 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.If your app uses a lot of memory, it may appear sluggish to the user or affect other apps running on the system, or, in some cases, it could fail the Windows Store or Windows Phone Store submission process. Inoltre, individuando le parti del codice eseguite più spesso, ci si può assicurare che siano ottimizzate.Also, if you determine which parts of your code execute more frequently, you can make sure that these portions of your code are well optimized.

Analisi delle prestazioniAnalyzing performance

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.As part of your overall development plan, set points during development where you will measure the performance of your app and compare the results with the goals you set previously. Misurare l'app nell'ambiente e con l'hardware presumibilmente usato dagli utenti.Measure your app in the environment and hardware that you expect your users to have. 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.By analyzing your app’s performance early and often you can change architectural decisions that would be costly and expensive to fix later in the development cycle. 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.The following sections describe performance tools you can use to analyze your apps and discuss event tracing, which is used by these tools.

Strumenti per le prestazioniPerformance tools

Di seguito sono elencati alcuni strumenti per le prestazioni che è possibile usare con le app .NET Framework.Here are some of the performance tools you can use with your .NET Framework apps.

StrumentoTool DescrizioneDescription
Analisi prestazioni di Visual StudioVisual Studio Performance Analysis Consente di analizzare l'uso di CPU delle app .NET Framework che verranno distribuite in computer che eseguono il sistema operativo Windows.Use to analyze the CPU usage of your .NET Framework apps that will be deployed to computers that are running the Windows operating system.

Questo strumento è disponibile nel menu Debug di Visual Studio dopo l'apertura di un progetto.This tool is available from the Debug menu in Visual Studio after you open a project. Per altre informazioni, vedere Esplora prestazioni.For more information, see Performance Explorer. Nota: usare l'analisi applicazione di Windows Phone (vedere la riga seguente) per dispositivi Windows Phone.Note: Use Windows Phone Application Analysis (see next row) when targeting Windows Phone.
Analisi applicazione di Windows PhoneWindows Phone Application Analysis 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.Use to analyze the CPU and memory, network data transfer rate, app responsiveness, and battery consumption in your Windows Phone apps.

Questo strumento è disponibile nel menu Debug per un progetto Windows Phone in Visual Studio dopo l'installazione di Windows Phone SDK.This tool is available from the Debug menu for a Windows Phone project in Visual Studio after you install the Windows Phone SDK. Per altre informazioni, vedere App profiling for Windows Phone (Profilatura di app per Windows Phone).For more information, see App profiling for Windows Phone.
PerfViewPerfView Consente di identificare i problemi prestazionali correlati alla CPU e alla memoria.Use to identify CPU and memory-related performance issues. Questo strumento usa le API di profilatura di Event Tracing for Windows (ETW) e CLR per offrire analisi avanzate sulla CPU e la memoria, oltre a informazioni su Garbage Collection e compilazione del codice JIT.This tool uses event tracing for Windows (ETW) and CLR profiling APIs to provide advanced memory and CPU investigations as well as information about garbage collection and JIT compilation. Per altre informazioni su come usare PerfView, vedere l'esercitazione e i file della Guida inclusi con l'app, le esercitazioni video di Channel 9 e i post di blog.For more information about how to use PerfView, see the tutorial and help files that are included with the app, Channel 9 video tutorials, and blog posts.

Per problemi specifici della memoria, vedere Using PerfView for Memory Investigations (Uso di PerfView per le analisi della memoria).For memory-specific issues, see Using PerfView for Memory Investigations.
Windows Performance AnalyzerWindows Performance Analyzer 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.Use to determine overall system performance such as your app's memory and storage use when multiple apps are running on the same computer. Lo strumento è disponibile nell'Area download come parte di Windows Assessment and Deployment Kit (ADK) per Windows 8Windows 8.This tool is available from the download center as part of the Windows Assessment and Deployment Kit (ADK) for Windows 8Windows 8. Per altre informazioni, vedere Windows Performance Analyzer.For more information, see Windows Performance Analyzer.

Event Tracing for Windows (ETW)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 is a technique that lets you obtain diagnostic information about running code and is essential for many of the performance tools mentioned previously. ETW crea log per particolari eventi generati dalle app .NET Framework e da Windows.ETW creates logs when particular events are raised by .NET Framework apps and 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.With ETW, you can enable and disable logging dynamically, so that you can perform detailed tracing in a production environment without restarting your 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.The .NET Framework offers support for ETW events, and ETW is used by many profiling and performance tools to generate performance data. Spesso questi strumenti abilitano e disabilitano gli eventi ETW, quindi è utile conoscerli.These tools often enable and disable ETW events, so familiarity with them is helpful. È possibile usare specifici eventi ETW per raccogliere informazioni sulle prestazioni relative a particolari componenti dell'app.You can use specific ETW events to collect performance information about particular components of your 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.For more information about ETW support in the .NET Framework, see ETW Events in the Common Language Runtime and ETW Events in Task Parallel Library and PLINQ.

Prestazioni per tipo di applicazionePerformance by app type

Per ogni tipo di app .NET Framework esistono procedure consigliate, considerazioni e strumenti per la valutazione delle prestazioni diversi.Each type of .NET Framework app has its own best practices, considerations, and tools for evaluating performance. La tabella seguente contiene collegamenti ad argomenti relativi alle prestazioni per specifici tipi di app .NET Framework.The following table links to performance topics for specific .NET Framework app types.

Tipo di appApp type VedereSee
App .NET Framework per tutte le piattaforme.NET Framework apps for all platforms Garbage Collection e prestazioniGarbage Collection and Performance

Suggerimenti sulle prestazioniPerformance Tips
App Windows 8.x StoreWindows 8.x Store scritte in C++, C# e Visual BasicWindows 8.x StoreWindows 8.x Store apps written in C++, C#, and Visual Basic Procedure consigliate per app di Windows Store scritte in C++, C# e Visual BasicPerformance best practices for Windows Store apps using C++, C#, and Visual Basic
Windows PhoneWindows Phone Considerazioni sulle prestazioni delle app per Windows PhoneApp performance considerations for Windows Phone

Analisi applicazione di Windows PhoneWindows Phone Application Analysis

Applicazioni per Windows Phone nel Marketplace in poche mosseGet Your Windows Phone Applications in the Marketplace Faster
Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) Famiglia di prodotti per l'analisi delle prestazioni WPFWPF Performance Suite
SilverlightSilverlight Suggerimenti sulle prestazioniPerformance tips
ASP.NETASP.NET Cenni preliminari sulle prestazioni di ASP.NETASP.NET Performance Overview
Windows FormWindows Forms Practical Tips for Boosting the Performance of Windows Forms Apps (Suggerimenti pratici per il miglioramento delle prestazioni delle app Windows Form)Practical Tips for Boosting the Performance of Windows Forms Apps
TitoloTitle DescrizioneDescription
Memorizzazione nella cache in applicazioni .NET FrameworkCaching in .NET Framework Applications Descrive tecniche per la memorizzazione nella cache dei dati per migliorare le prestazioni dell'app.Describes techniques for caching data to improve performance in your app.
Inizializzazione differitaLazy Initialization Descrive come inizializzare gli oggetti quando necessario per migliorare le prestazioni, in particolare all'avvio dell'app.Describes how to initialize objects as-needed to improve performance, particularly at app startup.
AffidabilitàReliability Contiene informazioni su come evitare eccezioni asincrone in un ambiente server.Provides information about preventing asynchronous exceptions in a server environment.
Scrittura di app con velocità di risposta e dimensioni elevate in .NET FrameworkWriting Large, Responsive .NET Framework Apps 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#.Provides performance tips gathered from rewriting the C# and Visual Basic compilers in managed code, and includes several real examples from the C# compiler.