Condividi tramite


Panoramica delle prestazioni e dei concetti fondamentali delle app di Windows

Ottimizzare le prestazioni e perfezionare i concetti base dell'applicazione dona un'impressione di chiarezza e maestria, consentendo al contempo un risparmio in termini di tempo, denaro, durata della batteria e sforzi di sviluppo. L'app consumerà meno energia, migliorando la durata della batteria e riducendo le emissioni di carbonio. Le applicazioni funzionano con maggiore efficienza su hardware meno costosi. La produttività dei clienti aumenta.

Questa pagina offre una panoramica delle tecnologie e degli strumenti di sviluppo per misurare, comprendere e perfezionare le prestazioni delle applicazioni Windows. Se si sta scrivendo un'applicazione per la piattaforma UWP, è necessario assicurarsi di consultare anche la documentazione sulle prestazioni della piattaforma UWP.

Cosa sono le prestazioni delle applicazioni e perché sono importanti?

Le prestazioni sono la misura di quanto efficacemente la tua applicazione utilizza le risorse del sistema per svolgere le funzioni per cui è stata progettata. Illustra diversi aspetti del modo in cui il programma interagisce con il dispositivo sottostante, tra cui:

  • Utilizzo della CPU
  • Utilizzo della memoria
  • Consumo energetico
  • Utilizzo della rete e dell'archiviazione
  • Prestazioni dell'animazione

A tutte queste proprietà è associato un elemento di costo, ad esempio la quantità di CPU usata dall'applicazione? Qual è la quantità di larghezza di banda dell'utente che utilizzerà? Quanto velocemente viene caricata questa pagina specifica dell'applicazione?

Gli utenti si aspettano prestazioni come proprietà fondamentale del software usato. Vogliono che le applicazioni siano reattive e usino in modo efficiente le risorse del sistema. Le applicazioni che presentano prestazioni scarse causano frustrazione, che può causare una riduzione del coinvolgimento degli utenti. Per offrire ai clienti la migliore esperienza possibile, è quindi fondamentale rendere le prestazioni una parte regolare del flusso di lavoro di sviluppo.

Quando è necessario misurare le prestazioni dell'applicazione?

Le prestazioni dell'applicazione possono estendersi su molte fasi del processo di sviluppo. Ha implicazioni su tutto ciò che va dalla scelta della struttura dei dati alla tecnologia scelta per la compilazione dell'applicazione. Tenere presente le prestazioni quando si sviluppa l'applicazione e si prevede di eseguire test regolari delle prestazioni come parte dell'aggiornamento e della gestione dell'applicazione.

Come affrontare la misurazione delle prestazioni

Ecco alcuni suggerimenti per l'approccio al test delle prestazioni dell'applicazione.

  • Metti a frutto la tua conoscenza della tua applicazione. Comprendere gli scenari più comuni per gli utenti consentirà di dedicare tempo saggiamente all'ottimizzazione delle cose giuste. Se sono disponibili dati su come gli utenti interagiscono con l'applicazione, è consigliabile esaminarli.
    • Dove gli utenti trascorrono la maggior parte del tempo?
    • Quali sono le cose più importanti che un cliente farà con il software?
    • Quali sono i requisiti hardware dell'applicazione?
  • Impostare gli obiettivi di prestazioni per gli scenari utente più importanti.
  • Essere precisi su ciò che si sta cercando di ottimizzare. Si tratta della CPU? Batteria? Velocità effettiva di rete?
  • Selezionare gli strumenti che verranno usati per eseguire le misurazioni.
  • Applicare una mentalità scientifica durante i test. Creare dei benchmark in un ambiente controllato. Apportare quindi la modifica e misurare nuovamente il modo in cui le modifiche hanno influenzato il comportamento dell'applicazione.
  • Aggiungere test di regressione nell'ambiente di test. Ciò garantisce che le metriche delle prestazioni non regredisca nel tempo.

Metri intrecciati

Anche se in genere ci si concentrerà su un'area delle prestazioni durante l'analisi, tenere presente che le aree sono spesso intrecciate. Un miglioramento in una area può trascinare un miglioramento nelle altre aree.

Ad esempio, la correzione del consumo di energia è spesso un problema di sincronizzazione. La riduzione dell'utilizzo della memoria può comportare una riduzione del tempo impiegato tramite la CPU. Possono anche verificarsi situazioni in cui risorse aggiuntive spese in un'area producono un miglioramento più significativo in un'altra area, ad esempio l'aumento del consumo di memoria può ridurre l'utilizzo della rete o dell'archiviazione tramite la memorizzazione nella cache.

La decisione di apportare una modifica dipende da ciò che è più importante per i clienti.

Quali strumenti è possibile usare per misurare le prestazioni dell'applicazione?

Sono disponibili diverse opzioni per misurare le prestazioni delle applicazioni Windows.

Se non si è certi degli strumenti da scegliere, vedere l'articolo: Scelta tra Profiler prestazioni di Visual Studio e Windows Performance Toolkit.

Icona di Visual Studio Profiler prestazioni di Visual Studio

Visual Studio offre strumenti che consentono di monitorare la tua applicazione e di ottenere informazioni dettagliate all'interno del codice sorgente. Vedere le seguenti risorse per informazioni su come usare questi strumenti per ottimizzare il codice direttamente dall'ambiente di sviluppo.

Icona di Windows Performance Analyzer Windows Performance Toolkit

Windows Performance Recorder e Analizzatore prestazioni Windows abilitano il monitoraggio e l'analisi dettagliate dell'applicazione e dell'intero sistema usando Event Tracing for Windows (ETW). Vedere i seguenti collegamenti su come iniziare.

Icona di PerfView PerfView

PerfView è uno strumento open source di monitoraggio e analisi creato dal team .NET per analizzare i problemi di prestazioni di .NET. Grazie alla capacità di decodificare i simboli .NET e la memoria gestita, è la scelta ideale per le applicazioni gestite.

Icona di SizeBench SizeBench

SizeBench è un'utilità che consente di analizzare e ridurre le dimensioni dei file binari compilati in codice nativo (DLL, EXE e altri file PE).

Risorse aggiuntive

Blog e notizie

Scopri cosa succede dietro le quinte con i blog degli sviluppatori, scritti dai nostri esperti di prestazioni, per aiutarti a creare la versione migliore della tua applicazione.

Community e supporto

  • Problemi di prestazioni nel ciclo di compilazione-debug-test? Segnalarli nel repository "Windows Dev Performance" su GitHub.

Prestazioni e sostenibilità

L'ingegneria delle prestazioni si interseca direttamente con il movimento che promuove software sostenibili. La maggior parte delle reti elettriche brucia combustibili fossili per generare elettricità. Quando un'applicazione viene eseguita su un PC, consuma una quantità di energia incrementale che può essere minima per un singolo utente, ma che aumenta con l'aumentare della base di utenti.

Si vuole ottenere informazioni su come l'ingegneria delle prestazioni si interseca con la sostenibilità? Consultare i Principi di Green Software Engineering e il blog Software Sostenibile di Microsoft.

Roadmap dei contenuti

Le prestazioni possono essere una parte complessa del processo di sviluppo senza le indicazioni corrette. Garantire la disponibilità della corretta documentazione per gli sviluppatori è fondamentale per creare applicazioni più veloci. La roadmap seguente illustra in dettaglio le pagine successive da aggiungere a questo set di documenti e nell'ordine in cui verranno pubblicate. Se c'è qualcosa di rilevante o che manca, è possibile comunicarcelo tramite i collegamenti di feedback in GitHub, nella parte inferiore di questa pagina. Il nostro obiettivo è quello di creare un set di documenti educativi e completi per le prestazioni delle app che soddisfino le esigenze dei clienti. Pertanto, saremo lieti di ricevere il feedback degli utenti. Vi invitiamo a inviare commenti su questa pagina di seguito e suggerimenti sugli argomenti da trattare in merito alle prestazioni delle applicazioni di Windows.

Argomento Descrizione
Introduzione alle aree di prestazioni Descrizioni del significato di prestazioni nel contesto di CPU, memoria, GPU e così via.
Identificare cosa misurare A seconda del carico di lavoro, dell'ambiente e di altri fattori, alcune aree delle prestazioni possono essere più importanti di altre. Informazioni su cosa misurare e quando usare questo documento
Ciclo di test delle prestazioni Esaminare il ciclo di vita dei test delle prestazioni, che include la configurazione dell'ambiente di test, l'analisi dei risultati e il miglioramento del prodotto
Informazioni sui diversi strumenti per le prestazioni Questo documento introdurrà altri strumenti per le prestazioni e analizzerà i casi d'uso e le procedure consigliate per l’utilizzo
Case study Una serie di scenari completi e i relativi percorsi attraverso il ciclo di test delle prestazioni