Pianificazione delle prestazioni dell'applicazione

Il successo del raggiungimento degli obiettivi di prestazioni dipende dal modo in cui si sviluppa la strategia di prestazioni. La pianificazione è la prima fase dello sviluppo di qualsiasi prodotto. In questo argomento vengono descritte alcune regole molto semplici per lo sviluppo di una buona strategia di prestazioni.

Pensare in termini di scenari

Gli scenari consentono di concentrarsi sui componenti critici dell'applicazione. Gli scenari sono in genere derivati dai clienti, nonché dai prodotti competitivi. Studia sempre i tuoi clienti e scopri cosa li rende davvero entusiasti del tuo prodotto, e i prodotti dei tuoi concorrenti. Il feedback dei clienti consente di determinare lo scenario principale dell'applicazione. Ad esempio, se si progetta un componente che verrà usato all'avvio, è probabile che il componente venga chiamato una sola volta, all'avvio dell'applicazione. Il tempo di avvio diventa lo scenario chiave. Altri esempi di scenari chiave possono essere la frequenza dei fotogrammi desiderata per le sequenze di animazione o il working set massimo consentito per l'applicazione.

Definire gli obiettivi

Gli obiettivi consentono di determinare se un'applicazione sta eseguendo prestazioni più veloci o lente. È consigliabile definire gli obiettivi per tutti gli scenari. Tutti gli obiettivi di prestazioni definiti devono essere basati sulle aspettative dei clienti. Potrebbe essere difficile impostare obiettivi di prestazioni all'inizio del ciclo di sviluppo dell'applicazione, quando sono ancora presenti molti problemi non risolti. Tuttavia, è meglio impostare un obiettivo iniziale e modificarlo in un secondo momento rispetto a non avere un obiettivo affatto.

Informazioni sulla piattaforma

Mantenere sempre il ciclo di misurazione, analisi, affinamento/correzione durante il ciclo di sviluppo dell'applicazione. Dall'inizio alla fine del ciclo di sviluppo, è necessario misurare le prestazioni dell'applicazione in un ambiente affidabile e stabile. È consigliabile evitare la variabilità causata da fattori esterni. Ad esempio, quando si testano le prestazioni, è consigliabile disabilitare l'antivirus o qualsiasi aggiornamento automatico, ad esempio SMS, in modo da non influire sul risultato del test delle prestazioni. Dopo aver misurato le prestazioni dell'applicazione, è necessario identificare le modifiche che comporterà i miglioramenti più importanti. Dopo aver modificato l'applicazione, avviare di nuovo il ciclo.

Rendere l'ottimizzazione delle prestazioni un processo iterativo

È necessario conoscere il costo relativo di ogni funzionalità che verrà usata. Ad esempio, l'uso della reflection in Microsoft .NET Framework è in genere intensivo in termini di risorse di calcolo, quindi si vuole usarlo in modo succoso. Questo non significa evitare l'uso della reflection, ma è consigliabile prestare attenzione a bilanciare i requisiti di prestazioni dell'applicazione con le esigenze di prestazioni delle funzionalità usate.

Costruire verso la ricchezza grafica

Una tecnica chiave per la creazione di un approccio scalabile verso il raggiungimento delle prestazioni dell'applicazione WPF consiste nel creare una ricchezza grafica e una complessità. Iniziare sempre con l'uso delle risorse con un utilizzo intensivo delle prestazioni per raggiungere gli obiettivi dello scenario. Una volta che si raggiungono questi obiettivi, creare una ricchezza grafica usando funzionalità a elevato utilizzo di prestazioni, tenendo sempre a mente gli obiettivi dello scenario. Tenere presente che WPF è una piattaforma molto ricca e offre funzionalità grafiche molto avanzate. L'uso di funzionalità a elevato utilizzo di prestazioni senza pensare può influire negativamente sulle prestazioni complessive dell'applicazione.

I controlli WPF sono intrinsecamente estendibili consentendo la personalizzazione estesa dell'aspetto, senza alterarne il comportamento. Sfruttando gli stili, i modelli di dati e i modelli di controllo, è possibile creare ed evolvere in modo incrementale un'interfaccia utente personalizzabile che si adatta ai requisiti di prestazioni.

Vedi anche