Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 15688|Risposta: 0

[ASP.NET] 8 modi per migliorare le prestazioni della tua ASP.NET Web API

[Copiato link]
Pubblicato su 11/01/2016 14:37:43 | | | |
ASP.NET Web API è una tecnologia eccellente. Scrivere API Web è così facile che molti sviluppatori non dedicano tempo a strutturare le proprie applicazioni per ottenere buone prestazioni di esecuzione.
In questo articolo illustrerò 8 tecniche per migliorare le prestazioni delle ASP.NET Web API.
1) Utilizzare lo strumento di serializzazione JSON più veloce
La serializzazione del JSON ha un impatto critico sulle prestazioni dell'intera ASP.NET Web API. In uno dei miei progetti, sono passato dal serializer JSON.NET a ServiceStack.Text per un anno e mezzo.
Ho misurato che le prestazioni dell'API Web sono migliorate di circa il 20%. Ti consiglio vivamente di provare questo strumento di serializzazione. Ecco alcuni dati recenti di confronto sulle prestazioni degli strumenti di serializzazione più diffusi.
SerializerPerformanceGraf
Fonte: theburningmonk
Aggiornamento: sembra che sembri che StackOverflow utilizzi Jil, il loro presuntuoso strumento di serializzazione JSON finora. Un dato di test si trova sulla loro pagina GitHub Jil serializer.
2) Serializzare manualmente JSON da DataReader
Ho usato questo approccio nei miei progetti e ho ottenuto benefici sulle prestazioni.
Puoi creare manualmente stringhe JSON dal DataReader ed evitare la creazione di oggetti non necessari, così da non dover prendere valori dal DataReader e scrivere sugli oggetti, poi prendere valori da quegli oggetti e usare il JSON Serializer per generare JSON.
Usa StringBuilder per generare JSON e restituisci StringContent alla fine come contenuto della risposta nella WebAPI.

Puoi scoprire altri modi per farlo sul blog di Rick Strahl
3) Utilizzare altri formati di protocollo (buffer protocollo, pacchetto di messaggi) il più possibile
Se puoi usare altri formati di messaggio nel tuo progetto, come Protocol Buffer o MessagePack, invece di usare JSON.
Otterrai un enorme vantaggio prestazionale, non solo perché i Protocol Buffer sono molto veloci nella serializzazione, ma anche perché sono formattati più velocemente del JSON nei risultati restituiti.
4) Implementare la compressione
Usa GZIP o Deflate nella tua ASP.NET Web API.
La compressione è un modo semplice ed efficace per ridurre la dimensione e la reattività dei pacchetti di risposta.
Questa è una funzione molto necessaria, puoi consultare altri articoli sulla compressione nel mio blog ASP.NET Web API compressione GZip ActionFilter con 8 righe di codice.
5) Utilizzo della cache
L'uso della cache di output nel metodo Web API è profondo. Ad esempio, se un gran numero di utenti accede a contenuti di risposta che cambiano solo una volta al giorno.
Se vuoi implementare la cache manuale, ad esempio memorizzare le password degli utenti, consulta il mio post sul blog Modo semplice per implementare la cache nella ASP.NET Web API.
6) Utilizzare ADO.NET tipici ogni volta che possibile
Scrivere ADO.NET manualmente è ancora il modo più veloce per ottenere valori dal database. Se le prestazioni delle tue API web sono davvero importanti per te, allora non usare gli ORM.
Puoi vedere confronti di prestazioni tra gli ORM più popolari.
ORMMapper


Il codice di recupero elegante e scritto a mano è veloce, e infatti tutti gli ORM sono più lenti dei tre.
LLBLGen con una cache di risultati è veloce, ma deve iterare di nuovo il risultato e istanziare di nuovo l'oggetto in memoria.
7) Implementare un approccio asincrono nell'API Web
L'uso di un servizio Web API asincrono aumenta drasticamente il numero di richieste HTTP che le Web API elaborano.
L'implementazione è semplice, basta usare la parola chiave asincrona e cambiare il tipo di valore di ritorno del tuo metodo in Task.

8) Restituisce più insiemi di risultati e combinazioni di insiemi
Ridurre il numero di trasferimenti non è vantaggioso solo per più database, ma anche per le Web API, che permettono di sfruttare la potenza dei set di risultati.
Ciò significa che puoi estrarre più set di risultati da DataReader, vedi il seguente codice demo:

Puoi restituire più oggetti in una singola risposta da un'API Web, prova a combinare gli oggetti restituiti e restituisci i seguenti oggetti:

Questo ridurrà le richieste HTTP alla tua API WEB.
Grazie per aver letto questo articolo.




Precedente:SyntaxError: Missing parentheses in call to print
Prossimo:vsftpd per aggiungere nuovi utenti
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com