Condividi tramite


Esigenze di prestazioni: utenti e amministratori

Gli utenti valutano le prestazioni dell'applicazione in base alla loro esperienza:

  • L'applicazione risponde rapidamente?
  • Viene visualizzata un'icona di clessidra mentre vengono eseguite operazioni in background?
  • L'applicazione viene avviata e chiusa rapidamente?
  • Gli errori vengono gestiti in modo comprensibile?

Per riepilogare, gli utenti vogliono che le applicazioni siano veloci e prevedibili.

Al contrario, gli amministratori spesso valutano le prestazioni di un'applicazione in base all'efficienza con cui usa le risorse di rete. Gli amministratori possono chiedere:

  • L'applicazione ha un sovraccarico ridotto e un utilizzo efficiente della rete?
  • Il numero minimo di connessioni viene usato, quindi il server può servire il maggior numero possibile di utenti?
  • Sto chiamando costantemente il supporto tecnico?

In breve, gli amministratori vogliono ridimensionare le applicazioni.

Procedure consigliate per esigenze di prestazioni

Quando si sviluppa un'applicazione Windows Sockets, questi requisiti di prestazioni si traducono in regole utili.

  • È possibile inizializzare rapidamente le applicazioni di rete.

    L'interfaccia utente non deve attendere le risposte di rete. Alcune attività possono essere eseguite prima che la rete sia disponibile o senza la rete. Se la rete non risponde, l'utente potrebbe avere bisogno dell'interfaccia utente per operazioni semplici, ad esempio la chiusura dell'applicazione.

  • Non attendere l'arresto della rete.

    Le applicazioni client-server scritte correttamente gestiscono le disconnessioni interrotte normalmente. Non avviare un'operazione potenzialmente lunga, ad esempio la sincronizzazione di file o cartelle con un server, che non può essere interrotta all'arresto. Le reti non sono costantemente reattive, quindi anche le operazioni di piccole dimensioni potrebbero dispendiose in termini di tempo. Fornire feedback positivo per gli utenti, incluse le indicazioni sullo stato di avanzamento e i tempi di completamento stimati.

  • Verificare un'interfaccia utente reattiva.

    La velocità di risposta delle applicazioni consente di eliminare le chiamate al supporto tecnico non necessarie. Una buona linea guida per la risposta interattiva è di 500 millisecondi. Gli utenti percepiscono pause più lunghe di 500 millisecondi come ritardo nelle prestazioni. Le applicazioni devono essere sufficientemente reattive per fornire all'utente la sicurezza dell'applicazione.

  • Esaminare gli errori di rete.

    Non tutti gli errori di rete sono critici. Ad esempio, un'applicazione che ha ricevuto o inviato tutti i dati può ignorare gli errori durante la chiusura della connessione. Non presupporre che la rete o l'utente sia disponibile; gestire gli errori senza intervento dell'utente o ignorarli se gli errori sono non critici.

  • Un'applicazione deve definire i propri timeout ragionevoli.

    Ad esempio, una richiesta connect() di Windows Sockets può bloccarsi in alcune condizioni per un massimo di 21 secondi. Le applicazioni potrebbero dover introdurre i propri timeout in base alle esigenze degli utenti.

  • Ridurre al minimo il sovraccarico del protocollo.

    La conservazione della larghezza di banda di rete riguarda parzialmente la riduzione del sovraccarico del protocollo generato dall'applicazione. Si tratta anche di eliminare il traffico di rete non necessario. I protocolli con un overhead di intestazione inferiore possono essere usati per trasferire i dati dell'applicazione. Ad esempio, quando si inviano quantità minori di dati non critici o ripetibili, usare UDP anziché TCP per ridurre il sovraccarico associato alla creazione e alla manutenzione della connessione. Se gli stessi dati devono essere inviati a più destinatari, prendere in considerazione il multicast. Tenere presente che le applicazioni UDP non sono controllate dal flusso. Il push oltre la larghezza di banda disponibile può causare un errore irreversibile della rete. L'utilità Netstat può essere usata con le opzioni -e-s per visualizzare le statistiche per vari protocolli.

  • Conservare le risorse di sistema.

    Le risorse di sistema possono essere utilizzate rapidamente se non viene utilizzata una corretta restrizione. Ad esempio, i socket e le connessioni TCP utilizzano risorse. Non usare più connessioni TCP per ogni client in cui si userà lo scopo dell'applicazione.

Per le applicazioni transazionali, un'esperienza utente ottimale e un utilizzo ridotto della rete non sono obiettivi in conflitto. La rete è un collo di bottiglia. Le applicazioni a elevato utilizzo di rete impiegano più tempo in attesa e le applicazioni di rete scritte correttamente sono progettate per ridurre al minimo i tempi di attesa non necessari, sia per l'interfaccia utente che per le trasmissioni di rete.

Applicazioni Windows Sockets ad alte prestazioni

Dimensioni delle prestazioni